browser backbutton Founder BackButton Movement 14/11/2019 -
As long as there is the Internet there will be a backbutton movement.
Industrial Strength Software is impossible without solving the BackButton.
Grady Booch: Industrial Strength Software is beyond the intellect of a developer I met this challege head on and won !
Static Html doesn't have movement ; by definition it is Static.

Information Structure

If you understand that for a dynamic internet application to be Industrial Strength one must address the backbutton problem, then we are of the same mindset. This note is for you. So if you are reading this then I know what your expectations are of the information structure on this site. This bothers me also. I am going to finish the content first. At the moment I am roughing it. For that reason this site is under construction as long as this paragraph is here.


I want to acknowledge my gratitude to those people who helped me to better myself so that I am qualified to do a setup and a startup of my choosing. Mr. Dimitri , 68K Assembly Language teacher, Ada Technical Lead and the one who wrote you have to consider connection pooling, load balancing and your database design have to be perfect for filling my knowledeg gap. A special thanks to the person who redirected me away from EJBs with the words NOT THIS.

The Code Generator

From the technical perspective this website contains everything you need to know to programme any kind of application. In 3 - 12 months you can be the most competent programmer it is possible to be. There is something called reaching the programmer's plateau which you will realise when I tell that story.
Next I will be addressing the different kind of people in IT. Those who look upon you as code generator. The one professional I came across who didn't regard the programmer as a code generator but a company asset. The role of line manager incompatible with an IT company goals and interests.

Jeeves the Warrior

What do you think of when you come across the name Jeeves , Warrior or Butler or Server. So then first to defeat the tribe of Apache Warriors , take their home , finally take away the last ounce of their dignity to call the Apache a server when it is a Warrior. I can't do that to a noble race of Warriors who went down fighting. So for this reason I cannot use Apache to serve anything. Imagine the woman comes home from doing her Senior Consultancy and you say to her it does not matter who you are and what you are, to me you are a server so go to the kitchen and serve me up a meal. You wouldn't do that because you know she is warrior, but you use Apache Warrior as a Web Server, a Jeeves.

All is fair in ... WAR file

the unsolved < here >

The Highlights

I was assigned by David the line manager at bytel ,slough, uk to another new manager Simon Edlin,who just joined the company. Simon says to me our customers have told us that a number of datawarehousing companies have approached our customers wanting access to the database. He says to me we are a software house so we can't have these database warehousing companies offer a service we can offer on our databases. He asks me do you know anything about data warehousing. A few weeks earlier I saw a contractor working on a work station looking up a book. When he picked up the book on one occasion I could see the title, I think it was called unix unleashed or something like that. How strange I thought he is supposed to be contractor so he should know the syntax and what he doesn't know he should be able to look up help (man). If a contractor can use a book then so can I. So I replied to Simon I will get a book and figure it out. He said OK you do that. I got a book on datawarehousing. I flick through the book, data warehousing is basically three dismension cubes or three columns with one column representing time or area. A column one can use to drill up or down by adjusting the where clause range in a select sql statement to measure an activity. An activity can be customers joined, made purchases, customer left etc. So I went to one of the DBA and said can you print me copy of the database meta data. (relational database diagram of all tables). He asked if I wanted it printed on large sheets so it would be easier to read rather than A4 sheets. I said OK. Couple of days later he provided me with double sided A0 size sheets. I was looking through the sheets for columns I can use to make cubes and the recently joined Project Manager walked past. He asked what I was doing. I said I am looking at the tables to see what data warehousing cubes I can make. He said I have been told there are 500 tables. I said No, 250 tables (249). I went back to Simon Edlin and said OK I have the cubes, there are alot of crunching data and they are also graphs involved which need to be clickable for management information. I need a tool to do that so I can connect the cubes to it. He said ok leave it to me.
A week later he said there is an event at the wembley conference centre , datawarehousing companies are going to show case their products, we will go there and find out what tools they use. Here is a a ticket for you. keep the receipts for your travel and you can claim it back from the company.
I met up with him at the wembley conference centre. He said to me go there to the stands and have a look. I went to stands set up next to each other. I went to the first stand and said to the saleman give me a demonstration of your product. He said no , you are not a customer, you are a developer and I am not going to show you. I then went to the next stand , this saleman saw what had happened and said I am not to show because you will take ideas from my product and I will be out of job. Sorry! not doing it he said. I went back to Simon and told him they are not letting me see their proucts. Simon said , Ok never mind I will think of something else. I wish to highlight that it was David the line manager who hired Simon Edlin the Datawarehousing specialist manager.

The peeps developer

My Best Program

I once wrote a short programme in Java. It compiled and ran. I put in that program everything I know. When I was writing it I could almost visualise the machine instructions being executed. The program was so finely tuned that it brought out the bug in the kernel. People who looked at it either said I only the basics, or I don't know how to programme despite the programme doing what it was supposed to. There were only two choices left at this point, either cut your ear off or distance yourself from these hacks. I chose the latter, but they put a website in my name so I am going to respond.

Configuration Data File

The Java java.io.serializable interface has no methods but can have every conceivable data type , which any self respecting programming language provides in its feature list. In any application, configuration data, which needs to be picked up at the start up of an application, the java.io.serializable is the perfect language feature to use to do so. It is clean , simple , flexible therefore by using java.io.serializable we will be applying both KISSS and {MUM}. The powers that be do not believe in either KISSS or {MUM} so they have chosen to use an HTML like files as configuration file i.e. web.xml. This is where they have to pretend every data type is a string and then it converted programmatically. More Importantly the String data types are wrapped in the most ugliest, untidiest syntax called TAGs. Totally the opposite to over beliefs and values [ KISSS & {MUM} ]. It is safe to say that who do not implement KISSS and {MUM} , but instead go in the opposite direction either to proliferate a software crisis or their java is not very good.

We know that static does not have movement, hence the serializable is static and has no methods because we use methods to encapsulate the decription of run time movement in our application using flow control [if, switch, for, while, do].


I have scanned through the Pawlan Book and one thing I can say for definite is that the intended audience is application developers. That is to say Pawlan , the author, is implying use this book to familarise your self with the Java Tools which you can then apply to a specification. Specification can be from either source, an employer or by employig your imagination. So if you consider yourself to be very good or want to be very application developer and your values are KISSS and {MUM} then for you there is a clear path to the Gold Standard, it is not a choice, Java RMI. EJBs etc. are for those who are not very good and who do not value KISSS and {MUM}. To them I say best of luck.


I have chosen to include this article on concurrency because the author uses certain key terms developers come across, also has a certain familiarity for me. Clean Code , inter-process communication , Concurrency is challenging ... and .. extremely hard for developers. Although I have come across articles which state JVM threads will translate to one to one relationship by the Operating System for CPU resource processing. I understand by default Java has one thread known as the Main where the code is executed sequentially through out the application, that is if one does not make use of threads in the application. Again if one uses a framework for application development then again it will be the same perception for the application developer, as the audience of the framework, the code is being executed sequentially. It appears that the intended audience of this article is the framework developer. I know my place, application development and I keep to my zone. The Zone where creativity , inventiveness is unleashed. Meanwhile it appears from the article that the framework developers struggle with concurrency. This is rather concerning for the application developer because the framework developer's work is a critical dependency . Come to think of it good, accurate documentation of the framework setup and startup is a critical dependency of its failure or success of any framework. It appears the author of the article is oblivious as to the operational boundaries or the separaton of roles. A far more important question comes to mind, why is this guy oblivious to the aformentioned ? surely he must have been involved in atleast one commercial application or was it a case of using a simple tutorial on threads to make boast.


You go to upload IDE and it is crashing with "0000xxxx00 error (pointers {*] at work) and you go to the support guy and say give me service pack CD. You load the service Pack. The IDE install : BOOM.
You do System Work Around not a bug fix on the system designed by the biggest Company in the world. BOOM.
You do the work around using the wild and uncontrollable power of C while taming it, as taught by Mr Dimitri. BOOM.
You look for and find the tool (application server) which confirms your instincts of system work around : BOOM.
You decide I am going to go for it, it is time to design the complete the System on your OWN terms and you trade with your equals, something you know with something you do not know to achieve your goal BOOM BOOM
You look at a System and say I am not wasting my time on this and it is confirmed to you, your instincts are correct the System is indeed flawed BOOM.
You are able to Judge a paradigm and say the paradigm meets all your expectations. BOOM.
You read a book on a programming language you have not programmed and are able to Judge that it is written by a pretender who have never written one line of code for commercial software :BOOM.
You can say Booch! you assume too much when you say Industrial Strength is beyound the intellect of a developer. BOOM.
You can say Einstein you assume too much when you say every action has an equal and opposite reaction. BOOM.
Chasing the Dragon: You can say for each strength there is weakness, expect failure , compensate for it because the environment is not perfect BOOM.
You go to the environment makers and say you people take years, I expect failure from you and I compensate for it by Chasing the Dragon: See my Prototype illustration. BOOM.
or a JavaFX application class must extend javafx.application.Application
There is only one logical conclusion, you are no longer amongst equals. You are now on your own. You are leaderless. You are captain of your own soul.

As captain First Invention : The secret path to the Gold Standard as illustrated , copy me if you can BOOM.
As captain Second Invention : The art of complex systems to simple as illustrated , copy me if you can BOOM.

The NotePadder

This happened in the early days of Java. After I tried out RMI the next step is to develop an application. For that I need an IDE. NetBeans was the one advertised on Java Website. I installed it and immediately I became confused. On one hand there is this technology called RMI which is new, exciting, inspiring and on the other hand there is this IDE with dark brown bean jars which look like something one would find in a village(pind) shop in the third world. I just couldn't make sense how these two could exist together harmoniously in the same world. The look of an IDE has never been an issue for me but all of a sudden became an issue. It was hideous. I couldn't possibly bring myself to develop applications using RMI or even basic Java programming with this hideous thing.

I turned to my two more resources theory.This theory has never failed me before but it did this time I decided to invest in a book in Java programming. With any programming book comes atleast one IDE. So I bought a book on java programming hoping I would find another IDE. To my surprise the author is claiming he does his development using Notepad. I wondered if this was guy for real. He the went on to say Java executes top to bottom. I know procedural programming works that way but I seen Classes in Java so clearly this language must be Object Orientated like C++. I learned a bit of C++ at Reading College of Technology. The first thing the teacher said in the C++ class was, I have good news , you don't have to write any code, everybody apart from me cheered. By this time I had gone through the learning curve of writing code so that statement didn't appeal to me. The author who of this o'reilly book, I think his name is Flutta, He then starting claiming he had a strategy on garbage collection to improve performance. Especially when I noticed performance with this socket based techonology called RMI. Anyway he (Flutta) nearly managed to scramble my brain, it was a lucky lucky lucky escape for me as I had gone to Reading College of Technology. If you have any issues on his theory of garbage collection please contact Flutta the author of that o'reilly book

I now know where he (Flutta) got the notepad idea from. It was in the book below. I can understand the author of this book using notepad because the author is a staff writer on technology and doesn't claim to be a developer. Moreover I do understand this author of Essential Java ... because what the author writes at the back of the book. ... It starts with a simple program,then develops it bit by bit. adding new features and explaining important concepts .. my advice to you from experience is that if it is an o'reilly book the chances are it was written by Flutta. Also in case anybody is wondering how can I program an application with out first learning the Java language or atleast getting a certificate. I don't need anybody's permission on what the approach I should take. I know all the considerations and I will build my application from a simple application, programming the considerations bit by bit. One builds bit by bit while looking up the bits on the other hand one follows step by step. My definition between the two is, bit by bit is building (learn by doing ) through understanding with clear explanation from some one who has an understanding, while step is step can be copying (imitation) from a hack like o'reilly's fultta. The o'reilly hacks, also incorrectly described a bean as a intraprocess (tightly coupled) EJB as interprocess a (loosely coupled). It is my understanding that Remote APIs like RMI or EJB are tightly coupled like an intranet with load balancing feature. While loose coupling of classes is an OOP Design principal which requires container management system. Similar to database is a data and disk management system, Operating System is a process/resource management system and my very first commercial project was called a fuel management system without concurrency operating system.

I know from experience with my C project in College that by the time I have programme the considerations, bit by bit, My Java skills will be good enough to programme the business logic. My application is not equivalent to a student project but an Industrial Strength Commercial Grade, unless a student finds my website. I know it will be the highest quality Gold Standard because I know what commercial applications look like from the good, the bad and the ugly.

There is one minor point I would like to mention about the book below, I still consider it a very good book. The author thanks Dana N., a HTML'er, for showing her how to SET CLASSPATH in AUTOEXEC.BAT. We know HTML'ers don't have movement in their static world so we should allow due consideration.Those of us who like challenges we only spar with movement.

The Task Manager

I combined Oracle's PL/SQL and C to plug together a database generating reports then emailing back together to the thin client. The front end developer had a loud bell sound to his email. So every time he requested the report from the browser it was emailed to him. I was in the server room so I could hear the bell. I was amazed at the instantaneous response as I watched my C programme (.exe) listed amongst the spawned processes in the Task Manager window. The operating system spawns the processes. The operating System is a process management system (memory, sheduling) just as a Database is a disk and data management system. I could see my .exe running like a service as it was ment to be in the NT Task Manager task list, polling the file that was being written by PL/SQL. C programming language is amazingly versatile for file operations. Although there two processes are acting on same file, C is versatile enough to allow another process to act on the same file with out corrupting the file. The C/C++ IDE obviously helped me with the mail API interface code. The key in finding code is being able to guess the right key words to search i.e. the API name, I am always able to guess the name. The fast response should be of no surprise because it was a mainframe. But then when I downloaded RMI on my work PC and noticed the same performance with the similar activity. The first thought which came to mind was, what a waste of money on that very very expensive Mainframe. That has got to be my one of my best commercial experiences because I had an oppertunity to compare performance on two different powered machines.

KISSSS 15/01/2020 -

KISSSS : Keep It Simple Software Solution Strategy:
GRADY BOOCH; The United States Department of defence (DOD) is perhaps the largest user of computers in the world. By the mid-1970s,software development for its systems had reached crisis proportions: projects were often late, over budget and they often failed to meet their stated requirements. It was evident that the problems would only worsen as software development costs continued to rise exponentially. To help resolve these problems which were further compounded by the proliferation of hundered of different languages. The DOD sponsored the development of single, common high order programming language. The winning design was originally called the Green Language (so called because of its colour code during the competition), and was renamed ADA.
I always wanted to move one step further from KISSSS with my software development to Keep It Simple And Safe Software Solution Strategy. I employ the Boeing Safety Critical fail proof system as taught to me. I have worked in the commercial world of bespoke applications for five years and in that time I have never heard a whisper of the fail proof system.

Make Use Method {MUM} makeuse.org 12/01/2020 -

There is an unknown method of programming which makes programming easy. It requires a minimum of effort with most productivity. You can start programming in a few days or use any framework without any training if you have learned two or three programmings already. I call it the Make Use Method. This approach was taught to me by MR Dimitri at Reading College of Technology , co-designer of Two Year HND COMPUTING COURSE. MR Dimitri also taught me C and Unix. During my years of commercial experience I realised that MR Dimitri didn't just teach me C programming language, he taught me concepts using the C programming language and common errors. So in the commercial years that followed, when mostly I was considered a more of a junior because I did not have a phD or Masters and was given mostly software maintenance duties. I applied the concepts to fix the software errors of those regarded more senior than me. I also began to realise that at times I was given problems which others regarded as very very difficult but easy for me thanks to Dimitri. On occasion some software engineers had spent months earlier,the problem popped at me straight away because of MR Dimitri and one his concepts he taught using the C programming language. On one occasion three months were allocated to fix the issue(s). I spent most of the three months coming into work and reading books and quizzing the hardware engineer who was testing my fix on the test rig.

THANK YOU MR DIMITRI ! for making programming, setup and startup so easy

Make Use Method is a mindset or school of thought. It is simple to understand and makes you and programming flexible.

If you want to store a number of value between - 128 to 127 then you Make Use of byte. If you want to store a single character then you make use of char. If you want to store a decimal value in your program then you make use of double . As you build your algorithm meeting your specification requirement. If there are too many lines of code after making use of flow control then you make use of encapsulation feature for easier readability of code with either a function, procedure, method or even a class. You just have to think about coming up with parameters and return value.
During program execution the encapsulated procedures, functions, methods are called. That means the code runs sequentially from top to bottom. So you must declared your variables at the top inside the encapsulation.
If you are programming using an object-orientated language then the encapsulated class is not called but instantiated. This means that only the code in the constructor will executed from top to bottom but not the whole class. In the class one can declare the variables at the top or bottom. I purchased an o'reilly book from USA Java in a Nutshell which sold in thousands stated that Java runs from top to bottom. Fortunately I had my College text book by Grady Booch, so I was able to detect this was a software bug as demonstrated in the code below: Also demonstration of gracefully move up and abrupt halt. :

public class newclass {

    public newclass() {
     System.out.println("constructor: sequential execution line 1 ");
     System.out.println("constructor: sequential execution line 2 ");
     System.exit(0); // HALT execution high level I/O interrupt
    // return; // move up level with return, same effect with break in {loop}
   // System.out.println("constructor: sequential execution line 3 "); unreachable code error: because return has moved up

   void someMethod() {

   public boolean AnotherMethod() {
      return true; // make use of return for validation

  public static void main(String[] args) {
   new newclass().someMethod(); // stateless
    newclass state = new newclass();

    if (state.AnotherMethod()){
    System.out.println("AnotherMethod executed successfully");
    else { /* for this sout to execute previous sout failed to execute in AnotherMethod: So this sout Will never execute to same I/O stream, unreachable code as is but no compiler error */
    System.out.println("H/W error: System Crash");
   //-- class fields --
   String strVar;
   byte byteVar;
   short shVar;
 } // end class

console output:
constructor: sequential execution line 1
constructor: sequential execution line 2
constructor: sequential execution line 1
constructor: sequential execution line 2
Another Method
Another Method executed successfully

There is a new programming language, FLUTTER where they say everything is a Widget. A Widget is either stateful or stateless. These terms of being stateful and stateless could have the meaning as I have shown in the code of the newclass, main function
Grady Booch described this new language as crisis proportions:... compounded by the proliferation of hundered of different languages.
I was looking through the window and I saw a bloke standing on a scaffolding cleaning a small round window with his squeezy yellow widget. I also see him reach in side the small round window and take the under score. I ask him are you FLutta ? He replied get outta 'ere before I belt you one, I know you follow KISSS. Not wishing to get caught up in another software crisis I darted out of there. The bloke was so angry at seeing me that he dropped the under score. I picked it up and make use of it then put it back where it came from, in the book below. Flutta is so complicated they actually make a explanation youtube video for each widget. They also say Flutta is so unique that each pixel is drawn individually. I thought that was what browsers do by interpreting html tags for lighting up screen pixels same as MS Word.

The C programming language was accompanied by short book by K&R with essential C code examples aka C Bible . You simply get your starting point code i.e. Socket API , build your algorithm from looking up the syntax as you go along if you can't remember it. making use of the compiler, debugger messages as you go along.
Make Use Method {MUM} of programming is creative, inventive, artistic and most importantly motivating.

Using the Make Use method you will find that in a very short space of time, two to three days you will become so proficient that you will be programming as if you were writing an essay or letter. That was my experience with C programming language. To achieve this goal find a specification. THIS IS VERY IMPORTANT: the more you understand the specification the easier it will be to programme. In my experience I had a previous career in Accountancy so I used that to learn programming. If the specification is understood by the developer then programming is simple and enjoyable. During my TWO year computing course I was the best C programmer by far while other students never got the understanding. I also had diffulty in conceptualising when I was being taught the first language, Pascal. Despite Pascal is meant to be an easy to learn for the purpose of learning programming. 68k assembly was my second language by this time the conceptualising was becoming natural . The specification in my head from my accountancy career set me apart. You may find you have to stop yourself and say that is enough for now for an "A" Grade. As I did.

Source Code example of Make Use Method {MUM}

In Java, there are two types of casting:

Widening Casting (automatically) - converting a smaller type to a larger type size
byte -> short -> char -> int -> long -> float -> double

Narrowing Casting (manually) - converting a larger type to a smaller size type
double -> float -> long -> int -> char -> short -> byte

public class MyClass {
   public static void main(String[] args) {
   double myDouble = 9.78;
   int myInt = (int) myDouble; // Manual casting: double to int

   System.out.println(myDouble); // Outputs 9.78
   System.out.println(myInt); // Outputs 9
} }

From my learnings of 68k assembler from my teacher, the other co-designer of the course, if my memory serves me correctly, the decimal number is stored in two memory registers. The whole number is stored in one memory register and the decimal number is stored in another memory registered. In my mind if I Narrow cast a decimal number to separate the whole number part then the run time has simply discarded one of the memory registers, so without the need to apply complex logic to achieve the same outcome. On one occasion I did Make Use of the narrow cast Java feature and built my algorithm around it. In my mind it was the most efficient way of achieving the outcome. Some may view my make Use Method of programming as just using the basic programming language features. Those who do not realise that one is programming two things specification and a computer.

Software Support for {MUM}
Does Mum ever need support ? Of course not, she actually provides support by the make use method. She will find what ever she can she can make use of. {MUM} also works the same way. {MUM} will never be stuck because {MUM} user will find and make use just like MUM. It was through {MUM} I realised Industrial Strength software is only possible by addressing the BackButton and need to the find the technology.
Always show respect MUM and {MUM} both.

What is JAVA {JVM} ?
JAVA is Object- Orientated, Ground Up, Network Centric, Distributed Garbage Collection, Write Once Run {from} anywhere with RMI, that is to say using OO programmatically an application developer can get a remote CPU(s) which may to attached to sensor(s) to do the work and get the result on the client or send it from that client to another client(s) or another server(s). Combining these features making java a {unqiue} programming language. Java is Write Once run anywhere who do not make use {MUM} of RMI.
I realised the importance of Garbage collection because I had fixed a bug in COBOL. The programmer's algorithm was correct, but his assumption although reasonable was incorrect. After the variable went out of scope it remained in memory then the second process and other processes after that picked the value from the same name variable and used it. By used it in this case the value was concatenated. That is to say if variable A ="10" , variable B = "20" then if variable A is not initilaise at the beginning of a process or garbage collected at the end of a process and variable A is global Then the value of variable C {= A + B} will be "$1020". But if the variable A is initialised or garbage collected then the value of variable C will be "$20" which is correct. Variable B's content is of course overridden or reassigned by the incoming process with new data. SO the lack of initialisation for variable B has no effect.
With Use of Naming conventions If we rename those three variables where A is CountryCode , B is TelephoneNumber and C is TeleNumber. These three variables are part of a Telephone Compute Billing Engine. This Billing engine is run once a month to calculate customers' Telephone bills. If the customer made an international call on the 24th day of the month then if the CountryCode is not intialised then the customer would be over billed, every local after that call for that month would become an International call because CounrtyCode is appended to every local telephone number retrieve from the database. Customers can be over billed for years until some one made an international call at the beginning of the month and had a need to check their bill. The programmer confused himself with his own naming conventions and the testers had no hope of detecting the confused phD highly respected programmer. Perhaps the application of {MUM} with naming conventions such as localNumber InternationalNumber would not need half a line code of change of telephoneNumner = "" at the end of the routine. To unconfuse the bug. Avoid Variations when naming variables i.e. TeleNum ,TelNumber, TeleNumber , you satisfy the compiler but will end up confusing yourself. Flutter has come with a naming Convention , adding an underscore to local variables.

What is Java RMI ?

RMI is an acronym for Remote Method Invocation that is to say executing code in a method from far away. Before RMI there was RPC, acronym Remote Procedure Call. We know that methods and procedures can have parameters and but methods like functions also have return values. First we had punchcards, then low level assembly language followed by high level procedural language. That was followed by C with structs followed by C++ which is also known as C with classes. It has been a long journey but we (application programmers) can now implement an interface on the class. Implement an interface as it was meant to be. We know the importance of using Naming conventions in Software Engineering is critical . This is the sacred path of simplicity and flexibility for application programmers leading to the Gold Standard known only to a few. This innovation means JAVA RMI finally fulfilled the promised prophecy of the Object Orientated paradigm by implementing the double interface. The double interface allows the offloading of heavy processing of the compute engine(s) on to separate server(s). The clients can be either thin, processed by application servers (because of the backbutton) or FAT clients JAVAFX/Swing in the same language. RMI is really easy for me because I have never swayed away from the gold standard, the sacred path known only to a few. {MUM}.

make use
The hardware referred to in reality can now be Strawberry PI at a cost of $10-$30 each,instead of expensive mainframes, desktops, even laptops. The Strawberry PI comes with free and user friendly Linux.

Object-Orientated: Methodolgy or programming language ?
It may appear to be a silly question to a computer science professional, If you agree that Object orientated programming is a methodolgy therefore language neutral then please contact Department of Science Indianan University Bloomington https://cs.indiana.edu/ and let them know. The Indiana Science University is teaching RMI {object orientated}... unlike CORBA, which is intended to be language-neutral, What you give up in neutrality you make up in simplicity. Do remember these are the Computer Science students who are developing software architecures :), the same ones who did not question, for how many years ? the anomoly I am showing you.
RMI Timing
The ability to execute the compute engine on a remote server is the defintion of flexible in Software Development. This is especially useful for business Intelligence or Data Warehousing applications. These two types of applications require heavy processing or separate compute engines.

The other types of applications which make use of a Database is called Online Transaction Processing {OLTP}. Any application looking to be simple and flexible from ground up needs to make use of RMI. By simple I mean RMI uses Object orientated methodology which is in itself simple and flexible. To use the RMI's remote feature one simply applies couple of lines of code in the client like ;
SomeInterface si = (SomeInterface) Naming.lookup ("//SomeHost[:1024-65535]/MyServer");
String retVal = si.SomeMethod("coco");

Application Protoyped: ZEN and the Art of Motorcycle Design

RMI : The beginning of a New Era, N-tier Making Use of Objects Orientated Methodology.
with Competing yet complimentary Frameworks Struts | Spring | Quarkus

src> java -version
openjdk version "13.0.2" 2020-01-14
OpenJDK Runtime Environment AdoptOpenJDK (build 13.0.2+8)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 13.0.2+8, mixed mode, sharing)

Useful Error message; call {MUM} but don't provoke her

$ java org/makeuse/iSayHello
Error: Main method not found in class org.makeuse.iSayHello, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

Please note the lack of imagination and the aformentioned self inflicting confusion Naming convention variation on the words application Application. This self infliction will be passed on like a virus of confusion.

You will find RMI helloWorld Swing Clients ONLY but you will NOT find examples of RMI demonstrating both clients This is the only website on this planet as @ 28/01/2020
This is a more complete demonstration of Storage and Retrieval with further possible integration of tightly bound storage and retieval of Database API, Mail API or small device (pace maker, red light on plane cock pit). If I want to simulate heavy user activity and see the results I would do that in a for or a while loop in the client or server or both.

The BUG; As you san see there is a bug. There are a number of ways one can analyse the cause of the bug. I did witness one bug analysis process conducted by a phD holder. I watched him stare at the screen for what seemed the longest time. His mouth wid open, and his thick glasses getting misty. The most interesting movement was his long finger trembling over the down arrow key. I believe he was in a trance of trying to understanding the code so he could scroll down, but the barrier to the understanding was so such a steep climb that he was unable to press the down arrow key to scroll down. I think it happens to phD holders, perhaps it is doing that phD thesis which burns them out even before they start employment. Staring at the screen like that is not a recommended approach. I also saw on one occasion three Indians staring and pointing and smudging the screen. I have a number of much better approaches.

My approach to application development in this prototype is described as chasing the Dragon and if achieved is considered monumental. We can also view the prototype as demonstrating two types of login screens. I was informed that a singleton design pattern is used to create a login box and it was implied the design patterns were associated to Java when they are language independent. I have two login boxes but no singleton. In Software Engineering there are bits (ones and zeros) known as don't care bits. We can consider the design pattern the singleton in application development for a login box in the category of don't care bits. I would describe this prototype as a demonstration of a tightly coupled distributed application. To Build such a prototype with Monumental qualities without guidance requires Jazba and Junoon in the application architect.

Although the technologies I used to build my prototype are great, I am going to have to use equally great commercial ware. For that I am going to have to get certification to prove my worth. No matter how talented you are, you must go commercial ware if you want to put bread on the table, certification is mandatory.

retVal =
Strus 2 RMI

For every strength there is a weakness. Expect failure from the environment and safe guard against that failure. For every action there is an equal and opposite reaction, however for the reaction to be equal to the action if (reaction == action) the environment has to be Perfect . I did not invent the return, it was already there to be realised by those who follow the secret path to the Gold Standard. The provision of the return is also an admission by those who make the environment that they cannot gaurantee a perfect environment for the application developer so he must make use of the retVal if he wishes to develop Industrial Strength software as illustrated in my protoype application.

As illustrated It is important to remember that patterns do not guarantee success. I know that my "chasing the dragon" approach does give you a greater chance of success when you expect failure from the environment and compensate accordingly. My impression of pet store example as they had done it, when my approach is "chasing the dragon" in accordance with my understanding and realisation was conficting. I simply pointed that out in turn received a hostile reaction. I felt there was really no need for to waste my time and energy to read any kind of a book on EJBs because I am going to follow my approach I believe in.

To display the one line of text in a Internet Browser for the World Wide Web it has been a collaborative effort by organisations like W3C [LOOK AND FEEL], IETF [TRANSPORT] , etc and probabaly many many more similar organisations, with implementators such as Microsoft, Firefox, google and hardware manufacturers of cables , routers , hubs etc. Proposing one I and one T and then crossing one T and each i at a time. I am familiar with this process of collaboration because the same process takes place in the Aerospace manufactering Industry. There is one difference between the aerospace industry and the evolution of Internet. In the aerospace Industry very highly qualified engineer(s) at Boeing come up with something new. Boeing test it using their testing methods and TELL the contractors and outsourcers to following and comply. The Internet effort on the other hand is a democratic, slow and snails pace. The Boeing effort lasts 5 years then DONE. Meanwhile the Internet effort is going on for 40 years with not even half the achievements compared to Boeing. I only know all the concepts involved into this type of effort because I went to Reading College of Technology and worked in the aerospace Industry and had some really good conversations with the Tech Lead who made time for me always. I joined that company to complete my education which I did. For example I said to him I am good at C,are there any projects in C ? he is the one who said to me don't mention that word here ! He was not an old man, in mid thirties and a typical South of England Gentleman.


The SetUp prior to RMI StartUp - In case of any security errors hindering you from application development and if like me that is your most important priority then just add this the bottom of file(s) to jdkhome/conf/java.security and or java.policy. Removes all default permissions which comes with JVM download
grant {
permission java.security.AllPermission;
When making use of the Gold Standard Source Code {GSSC} while following the sacred path known only to a select few, comments in source should not be necessary. Lack of comments in source code is the test of the Gold Standard as illustrated here PLUGINS
Communication Protocol {i}InterfaceName: Do keep in mind if the two interfaces are not the same the client and the server cannot talk to each other.That is to say the InterfaceName is the bit that allows communication. The interface is sometimes referred to as the protocol.
The author of the book refers to RMI as an API and EJB as an API too, However if you are familiar with an API, for example from C++ then you must agree that it is not an API by that definition. I think a more fair description is that it is a paradigm. Other paradigms such as EJB, Jini appear to be extentions of RMI. RMI is an object orientated version RPC (remote procedure call). I was informed that Jini and EJBs are competing paradigms. Javaspaces is Jini based which fit in there too somewhere. I think this maze of competing paradigms is what booch referred to as a software crisis ... proliferated by hundered of different languages. I had only worked on J2EE during lunchtime and comparatively I was judged to be very good according by one individual who had been seeing the Indians struggling with the basics despite efforts to standardise J2EE for them. The Indians of course want to compete directly with me who is working for a UK software house. I know a far better example of the Indian skill set which I will be discussing in detail, the whole story.


If a Class is a Blueprint and an Object is an Instance. The Instance is a Runtime Implementation of the Blueprint that is a Class. Then to add Impl to the class name the Class is not a Blueprint anymore, it then morphs into an Implementation because the Class Implements an Interface. Surely this is an illustration of Pindu-ism. The Oracle pindu has created a virus of confusion because he has relied heavily on Java compiler error message to support his supposation when he should have read a book OOM which say you can define method body abstract classes but you can ONLY define < abstract > method declaration in interface class. This point is emphasize in the animal dog class illustration with comments on this one page website.

Initially the RMI was rigid with the ability only to execute objecv behaviour in the illustrationme single JVM machine on a single port. That is to say both client and server were running in the same JVM machine. We as application programmer can relate to RIGID code behaviour, when we temporarily hard code to isolate a subset functional route for trouble shooting purposes,use exit to terminate, we may even pass a string to make the code think a file is being passed at runtime. Although we do this in our development environment NEVER for release. These are application programmers' strict private practices not to be viewed by others even other application programmers.
These people actual release the hard coded version, Anyway once "hard coding" was removed from RMI, RMI achieved flexibility, the ability to pass objects with their behaviour back and forth between remote JVMs machines.
Further surgery was necessary to remove stubs, skeletons to clean the code to bring it closer to Pascal's clean code Gold Standard. If you are not familiar with stubs and skeletons, these are tools used for unit testing with programming languages like Ada (aka Green Language) and Pascal. Obviously to use testing tools rather than the design tool namely the double interface was wrong.
To take RMI from a single machine to what it is now REMOTE, clean code, robust, flexible technology, RMI had to undergo many enhancements. Then more bug fixes due to those aforementioned enhancements. The usual development lifecycle of any new technological paradigm . Obviously knowledge holder of the sacred path to Gold Standard Source Code I was waiting but could not influence events, frequently downloading the JDK bundle (my work place had a very good Internet, I didn't have an internet at home at the time, no need , I'd rather have proper social life). I had to remain quiet and just wait, no matter the insults and offences. I was getting especially impatient with life membership to {MUM}. I think the task of replacing Call from RPC to Invocation in RMI may have confused these people. Hence the use of stub which is a testing tool i.e. stub testing, in prcedural language when really should have used the double Interface which is part of Object Based Design Tool. I have doubled checked that the Interface is indeed an Object Orientated concept in my recommended College text book by Grady Booch.
We have seen this self inflicted confusion before with Naming Conventions when making only variations of Naming variables in the Billing Engine and the poor customers ended up paying for International Calls when making local calls. I did try to join the group by claiming I was also confused too. I think they did not believe I was confused like them and I was told promptly we have have no interest in that person publicly on an email list subscribed by thousands.

Secure By design JAVA RMI: Secure by Design.
Once the client programme starts up, the application processing is executed in RAM memory by the kernel like any programme. The behaviour of the local application is transported on an as needed basis across the network over TCP/IP from server codebase somewhere to the client RAM memory. The transported object is garbage collected by JVM's Distributed garbage collection as soon as the client JVM releases reference to the object. The security aspect is that there is no risk of some one decompilimg classes because no classes on client disk to decompile.
Secure By design


The Indiana University suggests that Latency could be an issue and is left to a programmer to address. It took me ten minutes to conduct a latency test with RMI. It was really easy for me with the help from {MUM}. I guess that makes me a progammer as defined by Indiana University. I have also fixed the University's long standing Bug that Object-Orientated is NOT language neutral unlike CORBA. I have demostrated this bug fix by showing Object-Orientated is a Methodology same as {MUM}. I guess that makes me very good programmer or perhaps system Integrator ?

JAVA RMI Proof of Concept: from UK TO Santa Barbara USA Distance: 18,000 km, Time Taken: Round Trip in 97 Milliseconds

RMI Timing
Distributed Complex Applications Made Simple & Flexible with RMI

Web Server

Application Server

Competing Paradigms

nginx web server application server wrox press

Zen and the Art of Motocycle Design : N-Tier Application Architectural Considerations

  • Backbutton
  • Secure by Design
  • Direct URL Access
  • Load Balancing
  • DB Connection Pooling
  • Perfect Database Design < Danger > Billing ENGINE
  • Internationlisation
  • Push capability
  • Feature Rich Software Development Tools
  • Debugging
  • KISSSS & {MUM}
  • Awareness of Time & Disk Space < Danger > System Crash

{Current} Architectures when These Considerations are Irrelevant

Static Html, JavaScript, CSS Websites,JAVAFX,

Vendor Neutral Programming Languages for the N - tier.

4 {GL}

Two Tier Architecure is used for Intranet applications, It is a tightly coupled client server Architecure. Two tier are suitable where the use case is Fat Client. Programming Languages used for this use case are called 4 {GL} or 4th Generation Languages. Grady Booch described 4GL as tedious programming tools. These programming languages only use a subset of one programming language making the development of large and complex applications easier to manage. Easier in this context means projects are likely to be on time and on budget.

If you want further details on the advantages of OpenRoad 4.1 over Java, you may contact Computer Associates, a consultancy firm for further details. AFAIK those other technologies cannot download and execute object implementation (behaviour) only data.

Java Bean tightly coupled [object,state] to JSP {in-JVM processing }

Java Bean with JSP Useful for addressing the backbutton movement
< jsp:useBean id="RefId" scope="[page|request|application|session]"
class="packagename.className" />
retval = <% = RefId.getBeanPropety() %>

JSP to direct Database without RMI or EBEAN etc.

< jsp:setproperty name='db' property"*" />
<% int numColumns = 0 ;
ResultSet rs = null;

// abstract class
abstract Animal {
   public void animalSound(); // interface method (does not have a body)
   public void sleep(); // interface method (does not have a body)

public void animalSound() {
   // The body of animalSound() CAN be provided here
   System.out.println("The dog says: woof woof");

loosely coupled to JSP or GUI; Remote JVM Processing

Academia's Version            Commercial Versions
Java RMI    E-Bean    MBean IoC

// Interface
interface Animal {
   public void animalSound(); // interface method (does not have a body)
   public void sleep(); // interface method (does not have a body)  

// Dog "implements" the Animal interface
class Dog implements Animal {

public void animalSound() {
   // The body of animalSound() is provided here
   System.out.println("The dog says: woof woof");

public void sleep() {
   // The body of sleep() is provided here
 } }

class MyMainClass {
   public static void main(String[] args) {
   Dog coco = new Dog(); // Create a Dog object
   // coco wants attention
   // coco is sleeping
  } }

IoC Code

< bean id= "DogRefId" class= "co.uk.backbutton.Dog"/>

public class MyMainClass {
private static final String CONFIG_LOCATION = "beans.xml";

// create context (container)
ConfigurableApplicationContext context
= new ClassPathXmlApplicationContext(CONFIG_LOCATION);
Dog coco = context.getBean("DogRefId", Dog.class);
// coco wants attention

// coco is sleeping
// close context (container)
context.close(); }

HND Interview with Mr Dimitri

Mr Dimitri asked at the interview if I was to give you place on the course you are not going to give up and leave the course. What a strange questions I thought at the time. Anyway I said to him why would I enroll if I was going to give up. Although when I was being taught my first language,Pascal, I was asking myself what am I doing here ?
I think there is substantial evidence on this website along With What I have seen in the commercial sector to show I am the world's foremost authority on application development. Further real life evidence to follow. That is the final chapter. Then I will clean up and rearrange the website.

Mr Dimitri drew a linear project lifecycle diagram on the classroom board. He said coding should be 10%-15% of project time. He went on to say for some reason when a project is over running or late project managers tend to panic and throw more people at it. He said that is the worst thing to do because now you no need to train more people to get to know the project. This will mean the project will over run even further. Being able to sell MS Word as an easy way to do browser programming and Booch's comments Industrial strength Software being beyond the intellect of a developer, I do understand why he asked the question.
Best practices Commercial
Project Software Development Lifecycle

Career Path

Rather than accepting a safe career job as product support, I began my career working as a junior software Engineer in a safety critical bespoke hardware and software development environment. The client is equally technically aware. Only best practices are followed. ADA was developed by the Aerospace & defence Industry solely to avert a software crisis. Other Language I came across was Pascal. Does not have Persistent Objects & Concurrency. 3 {GL} Languages such as C, C++ {CPP} are frowned upon. One reason, Syntax readability. There are others reasons too. Use of Concurrency is a consideration so not permitted, simplicity or use of basic programming concepts is encouraged. In such environments there is only one production version. 1.0. On one project a mathematician was a member of the team. His role was to make complex calculations for the technical lead to programme the bespoke hardware. The technical lead was provided datasheets {communication protocol, port addresses i.e. watchdog,ACK, handshaking, etc.} of the bespoke hardware from hardware engineer(s) {in-house, client} . There is a clear separation of roles between hardware engineer, mathematican and two programmers. The Tech Lead was an ADA programmer , the other programmer was the assembley language programmer. He is the one who wrote assembly language subroutines from the hardware data sheets. The assembly language routines were then used by Tech Lead for devising application logic.

Do you have a minute ? I asked. He replied yes sure. I know I am supposed to do unit testing, I look around there is so much going on, the big Rig test room and all these documents, Do you have a top level document how the system works. He wrapped his sandwitch up and put it away neatly in his lunch box. Pulled an A4 sheet from one his document bundles. Flipped the page over to the blank side.Picked up the bic pen and began to draw. After he had drawn a number of components he then began to explain each of the components. He explained it is so clearly that I was asking questions as he was explaining and he was giving answers. He shocked me a bit with one detail. When he was finished I asked him that I heard that aeroplane software has black box and the software is supposed to be fail safe. He pulled his chair back and said here is the black box. He then explained how the bespoke software was fail safe proofed. It took all of 20 minutes and I had been downloaded with hundered of Millions of Dollars US of best research and development in the world.

After that day my best time of day was as I came in to work. The moments when I walked past the Iranian phD student who was doing his thesis on the project. He was going to spend a year writing his thesis from the specification, test documents etc. Searching through Bundles and Bundles of documents. He was always holding his head and always looked stressed trying to figure out the system so he can document it. I on the other hand accomplished the same in 20 minutes with a diagram from the project Technical Lead who developed the system over the past 4 years. The diagram labelled "competing paradigms", means so much to me because it reminds me of the diagram the Technical Lead drew for me. He then went on to send me to do fix of crashing system of aircraft engine monitoring system.

The gold standard in writing source code If you are wondering if there is such a thing then I can assure there is. I was given a printed sheets of paper with Pascal code and no other documents. I was told the engineer who wrote the entire software had left because the project was considered complete, passed and installed running live on aircraft engines. I only did a code walk through from printed sheets, I did not compile , test or flash. It was not a Boeing project so there was no mandatory accompanying documents. It was by reading the code I learned of the problem. The problem was that there is not just one startup but two startups which the Software Engineer was not told about, otherwise he would have compensated for it. Having seen the Gold Standard of coding I always compare any code I see against it. If it wasn't for a demonstration of the gold standard in code writing then how else would a college leaver discover so easily the second startup ? I have never seen code which comes any where near that code. It is possible to achieve a Gold Standard in writing source code. I knew nothing about the bespoke hardware, All I had to rely on was Pascal source code.

I then moved into an environment where a large and complex product was development using a 4GL. A 4GL language, principally is very much like Ada, designed to make software development simple. Further Best Practices were also followed leading to successful product Generating £18 GBP Million Pounds Revenue per annum from the work of 9-11 4GL developers, 2 testers, 3 Data Analyst , 250 tables on Ingres database B.I. not included.

To complete the challenge Booch Grady had set I needed Software Development experience where projects would be at different stages. I found such exposure at a software house. It was there I discovered one has to be diligent when choosing the right vendor solutions. In my case choosing the right skills.

I had set myself a goal at College when I read a recommended text book on OOP where Grady Booch taught Object Orientated Methodolgy using c++ Programming Language. In this book Grady Booch stated Industrial Strength Software is beyond the intellect of a developer. Object Orientated methodology allows the large & complex problem to be broken down or simplified. A process to identify the constituent parts of a functioning organ into smaller entities. One can only can do so when one is able to Conceptualise. For example I was able to conceptualise my accountancy skills in to programing in C programming language. I Know I completed my objective of achieving mastery of Industrial Strength Software when I was able to conceptualise whole systems and architecures. I began to understand Booch's statement and any developer should take his statement as a challenge. Once you have achieved the great plane of conceptualisation then you will be ready to carve your own on path. Joining that group who have also achieved that same enlightenment called conceptualisation.

DataWarehousing or Business Intelligence

I once attended the wembley conference centre where datawarehousing and Business Intelligence companies were show casing their products. The salesmen were given strict instructions not to allow developers to see their products. So I never saw the products. This is because these products are very simple in their functionality for a developer. So any developer can look at the functionality and replicate it. Then the developer would probabaly improve upon adding bespoke features. What I found strange is why would any company use such off the shelf products, because if you use off the shelf product and you (end user) had an idea to get information from your database to make use for you business. You would have to tell the product vendor.That product vendor would then add that feature in to their product and offer the same feature to your competitors and charge you and your competitors. So your business idea you thought would give you a market advantage over your competitors would be negated by the data warehousing product company. I knew that datawarehousing was simple but what I did not know was how to deal wth the issue of heavy processing until I downloaded the Java sdk, looked through the documents tried it out. I tried out RMI {remote method Invocation}. I finally solved the puzzle which had bothered me for a long time from my previous employment.

Punchcards to RMI

Punchcard to RMI or complex client programming solution to simple client programming solution. I follow simple software solution strategy, naturally my preference is any programming solution which moves away from client programming solution using punchcards to Object Orientated client and server programming. I did write on the IBM websphere mailing list that I am looking for such technology, the Indian IT industry on the IBM Websphere mailing list responded, stating categorally they feel any such simple software solution is wrong and they prefer the complex solution which could only mean using punchcards. I wish them the best of luck, in the meantime I am looking for an even simpler software solution then RMI, if I cannot find such technology then I will remain with RMI.

C to RMI

The manager came to me asked you know C don't you. I said yes. He said one of the other project needs some one who knows C. I had not done C for 5 years. It was a migration project from FAT client to thin client. My task was to call mail server from database server previously this was done from client. The Oracle database documents showed two ways to do it on the server. PL/SQL and C++ DLL. There was no code example C++ DLL interface in the documents.

I decided to go to the book shop and find a book with C++ example code. While there I picked up book on html because the developers on the project had been using html I think. This html book mentioned a weberver called Apache with a link to download it. I set it up and left it at that. HTML is authoring documents and that is of no interest to me. I see myself application logic developer which is an entirely different activity from HTML'ing or browser programming. At the Apache website I found some thing called tomcat. With my confidence I opened up a DOS window and ran startup.bat I recived an error message saying no JDK detected. So I went on internet and java.sun.com website where I found JDK. I downloaded the zip file for safety reasons. Extracted it on my C drive not in Program Files because it has space and this software may not know of it because there was also unix shell scripts and unix do not have spaces in file names AFAIK at the time. I edited the startup.bat file and setup JAVA_HOME.I did it this way so that after I am finished with it I can just delete the C:\tomcat directory and C:\jdk and there would be no residue left on my machine. I once again ran startup.bat and tomcat started up. I think in the readme it said to go to browser and put in http://localhost:8080. Futher to what I know I wasn't expect a response from the browser and it was a shock for me when I saw the tomcat home page in the commercial Microsoft Browser.

Seeing the index.html page in the browser had a number of significances for me. This is because in my previous employment I was trained on CA Openroad (4GL) then later on Oracle Forms (4GL). In my current employment it was pretty much the same. There was a further complication in my current employment because the ORACLE assumed the project manager who chose their tool and the developers who worked on it are incomptetent. When I was asked to do the impossible by a sneaky manager I saw the flaw in the Oracle product as demonstrated in the prototype. Being tied in to a vendor limited both my employment opportunities and the skill I could reach.

After I set it up tomcat and read the documents I realised that This tool could be used to execute logic on the server and this is the tool that should have been used to call the Mail API for that project. It was a case of managers being managers.

From Tomcat I came across a language called Java on the sun microsystems website. I downloaded the SDK looked through the documents and noticed something called RMI server programming. I Set it up and ran hello world to see a demonstration of its functionality. I soon realise this was something entirely new and used object orientated programming. More importantly I figured out I could use it for that Datawarehousing problem I always wondered about. I knew one could not do datawarehousing with Openroad or Oracle Forms.

The JSP Servlet examples which came with tomcat were not enough to explain what they do, so I then got a book called Java Server Programmming. This book explain all these technologies I never heard of. The technologies I decided to focus on is JSP, BEAN, RMI and I view them databases very well as disk management their proven use for large and complex system and data management. Once I was satisfied I had all the tools I needed to program applications I decided to put them away for future use. One thing I was not going to do was to train on a vendor tools ever again. I wanted a sustaniable set of skills. Thanks IBM for websphere but I had made my decision. To find out whether a technology is sustainable is to wait and see. So that's what I did. I had no more challenges to conquer.

When I had started tomcat there was some email addresses one could subscribe to. Through curiousity I decided to subscribe and find out. People were asking questions and people giving answers. I decided to ask a simple question out of curiousity. I got no response. This irritated me so I decided to interrupt an email which said didn't work . I decided I was going to show off and show I am not the kind who needed any help. I made fun of their tomcat and how dark ages they were I didn't realise It was a world wide joint effort of some kind. I then created senario problems on the fly as I wrote the email and solving them on the fly with my make use method I learned in college, recalling some java language features I had read in the JAVA in a nutshell book, while displaying the concepts I had picked up over the years. I knew this would mean nothing to the less qualified but to the most qualified expert(s) they would realised what I had accomplished in an hour or two during my lunchtme, That most I.T. people cannot do without training and then some. I could see that setting up RMI would be difficult for the uninitiated but not for me and my ways. The fact that MBEAN runs on same default port 1099 as RMI, can mean only that the owner, inventor of RMI refused to sell intellectual rights to Oracle leaving RMI as Free Technology to Make Use of for Application Developers. Oracle can only make use of it. Oracle doesn't have control of JAVA application servers either, so what did they buy ? the Oracle architect is proposing to eliminate java.io.serializable claiming it was a mistake. I found RMIs in the j2se jdk bundle with documents. The installation instructions were missing for a long time and I couldn't understand why nobody noticed that or the endless possibilities of RMIs for application development.

Success Lasts

I believed at that time I discovered the RMI I believe it is technology with sustainable future. especially for some one who had hopped from technology to technology. That was a long time ago. Oracle's MBEANS is basically a wrapper on RMI for commercial reasons. They both starts on port 1099. So It is still going with another name. If you want to attach it to a remote sensor and want the remote CPU to do the work, that remote is most likely written in C then java provides C /C++ interface for you can make use of it.

Network Communication

Network communication is very simple as taught at Reading At College of Technology. First there is a Handshake Routine with a hello, how are. These are BITs turning each other ON and OFF on client server , sender receiver. if Handshake successful then the data is sent. The DATA Packet is sent. The data packet has three parts. HEAD, BODY ,TAIL. The HEAD contains the destintion address. The Body contains actually data.and the TAIL contains the checkSUM. For speed the data packet is sent in 1s and 0s and converted back. The tricky bit is the size of the body. Should you send dor instance an image in one data packet or break it down in to smaller data packets. If so How many pieces. At the same time hardware data buffer is a conisderation too. Then the algorithm one applies to the body starts to get indecisive as in what you prioritise, what are the limits. According to a book by o'reilly the coomunication is very simple know only to a few, but this book fails to mention also known to those who student who went to Reading College of Technology. It was this knowledge which landed me the job of fixing aircraft bug on an engine monitoring system where I applied the {MUM} as taught by Mr Dimitri.

what is URL ?
When you put the URL in the Internet browser and press enter. The browser request goes to the web server. The URL navigates its way with the destinaton address contained in the HEADER. The webserver then sends the requested page in the BODY, while navigating back with the address to your bedroom contained in the HEADER. So when some one pokes or peeks some one's machine via the internet, while giving their ID first. The address also given away at each router. It is like robbing a bank without a mask and making sure to give you ID first. I have a name for these techies. I call these techies Pindu . The data packet containing address of destination for navigation in the HEADER is Secure by Design.

Commercial Awareness

The Easy Sell I completed my thirteen page course assignment on Round Robin, the five Philosophers etc, I used MSword, a word processing software and was ready to print and hand it. I went to FILE -> OPEN -> selected file and selected OK. Instead of seeing the file I got an error saying could not open file. I tried to open it about ten times in desparation. I then mentioned it to MR Dimitri in the next lesson. He open the file in MS DEBUG doing a memory dump. We could see two types of characters ASCII and Binary. As we scrolled down the file we say two strange characters. He pointed that these two characters have been corrupted. So he extracted the top half of the file using memory addresses up to the line above. He then extracted the bottom half of file from the next line below to the end of the file. He then merged both files into one file using DOS Debug. MS word opened the file without any problem and all I lost was two words from the entire file.

I logged an emailing list for products where I made use of the same datawarehousing salemen's method, and applied the same to my competitors. I was working for a uk Software house at the time. Knowing that there were competitors on the line and they had not attended Reading College of Technology, I suggested I had discovered an Easy way of use of MS word to quickly set up websites. The key to this rapid application development system was that you MUST use the correct versions of JVM, Operating System etc. Then I said I had to go and did not have time to give version numbers. Those who were on the line looking to steal ideas would be spending alot of time going through the version numbers, looking to do rapid application through theft of commercial ideas, to put me out of business, actually accomplishing the opposite.
The idea I had suggested was that you can use the drag and drop facillity of MS Word to design the page. wrap it in a zip file, rename the zip file to webapp war file and the server would send the document and the document would show up as is (WYSIWIG). This is because Microsoft had settle their differences with their competitors. I suggested that I was making four to five websites a day using this method.
I knew this idea would be an easy sell because I had worked in commercial software development for four years following the aerospace experience, so had a good idea of software development skills around me.
I can imagine 1000s of developers in third world Software houses being tasked to find out the compatible versions from the unlimited combinations.
Once they had failed to replicate what I had done, then the real fun starts. They would then use their influential contacts with W3c and IETF etc. That is when the real experts would discover what a bunch of pindoos these third world GURUs really are :)
My idea was so convincing for one company that I was given a job. When I found out real reason for recruiting me I left the company in disgust. HOW DARE YOU !! even ask me especially indirectly.
that company is Business Object in Maidenhead UK.

Commercial Sense

It makes commercial sense to me that if I found technology which is simple and flexible and really great for developing applications. whether those applications are large or small to keep it to myself. Technology that I know Industries like aerospace and defence would approve and is inline with their concepts. If using MS Word for developing website is an easy sell then RMI is an even easier sell except RMI is REAL. Why I should I tell my competitors ? RMI is old technology now and I think every body must know by now , so no harm in mentioning it now on my website to show my software development superior skills.

Software skepticism.

My software skepticism began with the oracle two tier think client product. After I found tomcat the application server and its functionality I couldn't believe that my instinct about Oracle's Commercial product were correct, moreover this product was free and actually better than the commercial product. Not just any commercial product but ORACLE's product. I was in ecstasy at the time. I could see I could use this product to make a living. When I was given IBM websphere, after I logged on a mailing list, by some nice people, my doubts subsided about tomcat being being commerical quality product. I made a detailed examination and I discovered that IBM Websphere was Tomcat with GUI. I was no longer tied into a vendor. I was amazed to discover these Tech Giants were selling tools which were not design by them but by some world wide collaborative effort. The vendors simply downloaded the raw source code renamed it and added GUI installation. The really great feature is that one can train on these products at their own pace and reach the plateau.

Troll Website
I gathered the information I needed for my ZEN and the Art of the Motocycle Design with one question from somebody who had also read Booch Grady's book and understood the meaning of that phrase. At same time leading my competitors on a wild goose chase. When they realised they have gained nothing by following me mailing list to mailing list. They set up a website in my name saying that I was trolling mailing lists. I was even invited for an interview supposedly for a job where I was supposed to give them results of my smart work not hardwork. I was supposed to tell them the flaw in the ORACLE product. They drew it on the board. I smartly gave it a look so they can see I know, for I am the scarlet pimpernel { they seek him [pause] here , they seek him [pause]there , they seek him [pause] everywhere }. Why don't you do what Booch says prototype , prototype , prototype or if you know what you are doing, like me just do one hello world. That was HP in wokingham, England UK. The Russian guy who couldn't get a job in Russia , but in UK the one who said Bean is an Intraprocess and E-Bean an interprocess. These people did know of the sacred path to the Gold Standard otherwise they would have seen I had what I wanted very early on with question. These people do not know of me that I am the who walk past Iranian phD Student with a wry smile. There is a concept called smart work which is unlike hard work, but to apply it correctly one has to be privy to the sacred path to the gold standard.

Microsoft word as Interpreter and the Internet Browser as Interpreter can be thought of as competing paradigms where Microsoft word is an intraprocess (tightly coupled) and Any Internet browser is an interprocess (loosely coupled). Those are my thoughts on those terms. Meanwhile local objects in Java are called by Reference like * pointers(to memory) in C and Remote objects are called by copy like normal functions pass by value. I think. That is what Mr Dimitri said about C.

REACTIONS ... to be continued

Coming from a 4GL background, over a decade a ago I became aware of the BackButton problem and the need to solve it in order to produce Industrial Strength Software. With Quality Software development experience behind me, The approach I adopted was to start from the top level and investigate the architectural considerations first. Implementation second. My approach has stood the test of time. My proof of concept is, I was able to purchase the domain backbutton.co.uk just recently. It has been available all these years. backbutton.com has an image of a game. The HTMLer can't appreciate its value in the same way an application developer can. It is NOT one of their consideration.


I find it quite worrying when I see that software developers do not apply my Make Use Method {MUM} to -cp to add libraries. The powers that be have to supply -classpath and further more recently in jdk 11 --class-path. It is evidence of software crisis .

WORDS in a Dictionary

There are over 1,000,000 words in the English language. An average person only makes use of 5,000. Some Academic may know up to 7,000 - 10,000 words. So make it a habit to look up any word you are not sure of. Never read past a word you don't understand. Stop ! look it up then continue. In the UK there is an organisation called Plain English Campaign, so the issue I described is a recognised issue. It is part of the english culture. Making use of good Naming conventions is a recognised part of good software development. Understanding words is critical to software development. If there is a lack in making use of Naming Conventions then that software could do with improvement. Software development doesn't involve digging ditches so you don't need big muscles just a dictionary.


I always have at least two or may be three resources on the same subject in case one fails to explains so I can turn to another resource for a better explanation on the same topic. That strategy is not needed in this case. That is a first for me. If RMI is in this essential Java Book and you do not know RMI then perhaps you need to learn to Conceptualise.

The Setup

This book is indeed written by a professional, previously a staff writer with Sun Microsystems and now a staff writer with Oracle. If you follow the setup instructions you will indeed have RMI up and running. The author does make use of unsetenv classpath or classpath="" extensively. As you can see from the image above of my protoype, I never use classpath, class-path etc. nor do I have need to do so

When I setup RMI for the first time I did not quite follow the instructions. I started out with the belief the software was written by an expert born from an idea or experience. It was up to me to determine the RMI Environment. Remembering Mr Dimitri's directions, I began with one error at a time starting with the first one. When you get to my level of conceptualisation you will realise cp, classpath class-path are for Pindoos.

The Startup

After the rmiregistry has started, it will take with it any byte code you bind up to RAM. The rmiregistry will use reflections to execute object behaviour as requested by the clients. The application developer must keep the byte code compact so as not to oveload the rmiregistry. That is to say the remiregistry should not have to place any byte code on to the disk because you have not made enough RAM available for the rmiregistry. This will slow down the application run time response because disk is over a 1000 times slower than RAM. If you overload the rmiregistry then you have neutralised RMI benefits. I have no scientific proof, this is my observation from the Java Language characteristics.

Java Server Side

With the Internet comes the Server Side Programming. So for a MainFrame manufacturer sponsoring and supporting a language like Java which appears to be designed from ground up as a server side programming language probabaly made sense. However Java is also described as network centric. RMI, is a network centric API, RMI is a java JVM core. we have already discovered RMI gains, simplicity and language neutrality. The purpose of an API is so that an application developer can make use of it instead of re-inventing the wheel. One can say use of an API is a means of rapid application development. so RMI API is a means of rapid application development. RMI API is a means of modular development in a large system. RMI is a means of application deployed on smaller machines [load balancing][Compute Engine]. Should Sun Microsystems have looked further in to Java and realised network centric capabilities ? Where is SUN Microsystems now ? How does an application developer go to Sun Microsystems and say I am interested in Java server side programming NOT because I am interested in mainframe programming, but because I do not have to use expensive mainframes with JAVA ? [AWKWARD!]


I was on the IBM websphere mailing list, I knew the Aerospace and Defence Industry was behind me when I wrote I follow kis software solution strategy . I waited for a response. A response came. Simple Solution to a complex solution is always wrong. Hundereds of Indians IT on the EJB-INTEREST mailing list cheered and wrote thick!! when I did not respond. I am not the one who was being referred to as thick but the aerospace and defence Industry who who taught me that. As you can see it say Simple Enterprise
is easy . Enterprise JavaBeans was designed because the Indians couldn't understand it so it was made easier for them so they could be imported at a cheaper rate. Simple solution to a complex problems is always wrong , well then EJB was made simple for you (the Indian crowd)and yes it is wrong, so why are you doing it ? Too simple for you ?

What Happened Next ?

I logged on Jini-interest mailing list further to the competing paradigmsdiagram. The first thing I was told was it was the Kernel (home PC). The intermittent error in my Java program was caused by the kernel not the JVM. Another words imperfect environment. More importanty it was just as concerning to them so they investigated it. Anybody seen a lost in space aircraft which couldn't fly in a straight line from A to B. I guess the Aerospace and Defence Industry did not share their fail proof strategy with you ? My chasing the dragon mindset came from Aerospace. India's direct competitor, one seventh in size has a home made jet fighter, on the market, while India haven't been able to get it up forty years. Finally conceded impotence,unproductiveness, disfunctional, and turned to France for their Rafael. It all comes down to a different school of thought


https://docs.oracle.com/javame/8.0/api/dio/api/index.html If I spend two hours a week on this page I will end up with serious number of inventions, probably integrated into Struts and/or Javafx.application.Application. Some Api names sound familiar, blast from the past, i.e jdk.dio.uart, jdk.dio.watchdog, jdk.dio.gpio . I know I will not find any disagreement or issues here. This is strictly by the professionals. I may learn to program a robot arm + hand , turn it upside down and call it a dog, The more versatile the arm + hand is, the more human like the arm is , the more versatile the dog will be.