Theo Verelst Diary Page

Latest: 30 November 2000

I've decided after good example to write some diary pages with toughts and events.

Oh, in case anybody fails to understand, I'd like to remind them that these pages are copyrighted, and that everything found here may not be redistributed in any other way then over this direct link without my prior consent. That includes familiy, christianity, and othercheats. The simple reason is that it may well by that some people have been ill informed because they've spread illegal 'copies' of mymaterials even with modifications. Apart from my moral judgement, that is illegal, and will be treated as such by me. Make as many references to these pages as you like, make hardcopies, but only of the whole page, including the html-references, and without changing a iota or tittel...

And if not? I won't hesitate to use legal means to correct wrong that may be done otherwise. And I am serious. I usually am. I'm not sure I could get 'attempt to grave emotional assault' out of it, but infrigement on copyright rules is serious enough. And Jesus called upon us to respect the authorities of state, so christians would of course never do such a thing. Lying, imagine that.
 

Previous Diary Entries
 

Nov 30, 2000

Daily updates weren't very doable for quite some time, but at least I'll put up some diary pages on top of journal pages as well, this time not too personal, because I'm not sure about many things and drawing certain conclusions and making certain ideas explicit without exactness may be quite unwise at this point.

Gotta make some money, and am in the process of preparing so, shouldn't be too hard with my e.g. software skills/knowledge, but circumstances aren't average, neither is my background. Some serious possibilities are developing.

DO check out the synth page (under highlights), its doing samples and digital simulations of analog filters now, and the Z80 has nice displays with texts, numbers, enough to make many simpler devices look yealous. Gotta get the funding to make one in an encosure, and I'd be a fool if I wouldn't make on e based on a top DSP such as the TI tms320C602 or so. Relatively ittle money, that's all it takes, I guess some know that. And than some work of course, but my algorithms for simple sampling, and for hip enough physical modeling (probably real time on those dsp's or fast workstations), see previous pages with sound examples.

Internet

What if I'm on the internet, and the wonderfull network providers/ maintainers somewhere along the line decide to track my data? I'm quite certain things like that happen, AND that it is illegal at least for any personal information being transfered. Email, and personal data are protected under Dutch, European Communian, and US laws, and quite regorously even. I did quite some law text reading in the area and at least officially that 'solves' the question as to wether someone may actually read what I'm transfering over any medium. The idea of people acessing my data and maybe even messing with it is not just repulsive (it means you're a quite low life-form in my opinion), but potentially dangerous: e-commerce is one problem, but also when anything at all of value or personal meaning is involved, there may be pityfull parties who actually may make it their job to interefere with someone's data. Checking what I'm browsing is one thing, but when I for instance respond to public pages, lets say on bulletin board type of services, it may actualy slander my good name for instance. Luckily I'm aware that service providers may have pretty far stretching possibilities to verify which physical network parties are trying to take on certain identities, but still it is an allarming possibility is much of the internet is managed by parties that have the theorticla possibility to be all too instrumental in trying to follow and mess with all data.

Interestingly enough I also found that software protection is in Holland arranged via copyright/intellectual ownership laws, and that the 'auteurswet' has been extended to make this clear, just like I proposed in a university report I worked on 15 years ago, even some issues are dealt with in for me recognisable way.

I'll quote some interesting international and dutch laws later as I have the possibility concerning both data/letter protection, software/idea protection and even general issues, which occupy my thinking regularly, such as my constitutional rights. In the world as evil as it is this is far from theoretical and in my opinion very useful, and it is even 'christian' (though the term alone regularly gives me creeps): Paul for instance claimed his civil (greek at the time) rights to be not treated for a rightless person.

Two articles in the dutch laws make me wonder about their meaning: one about not being punishable before official punishment has been determined (does that talk about general rules or the legal actions in a particular case ?), the other is about the illegality of being someone personal service person or something like that, I'll look in some jurispondence and explanatory text what that exactly means.

Some interesting articles in dutch law concern security and accessability for the subject of any personal data record, the right to ones own personal living athmosphere and of course integrety of the body, the right to chose one's own work, the impossibility of dispossessing a persons possesions as part of any legal proceedings at all, freedom of utterances without prior censorship in writing and other forms including media.

Technicalities and politics in internet world

Because of my university background and interests, I'm aware of the fact that for instance IP (of tcl/ip, a major carrier protocol of internet data) by its nature at least makes it hard to mess with any individuals' data just like that. Every strema of data may take different routes over the internet, and there's a lot of double-checking of origins and destinations when data is being transfered.

Suppose IP protocols are carried by providers/network managers that limit this possibility and/or that have access to all possible routings (lets say a ducth email account completely reachable over that providers network), then there are operators who have considerable power over all this. Not pleasant idea.

Another technical issue that was brought to my recent attention because of a lawsuit against an english provider, is the use of multicast groups to transfer for isntance audio or video to more than one receiver (in real time, such as internet radio). Technically an interesting matter, its the only network use that is fundamentally different that the socket plus cords approach that at program interface level underlies almost all other network uses, and the application, such as for replacement of cable video signals, can be broad.

I should redo my reading in for instance the Cisco docu to see what the current implementations allow, and how routers deal with it, but simply put: one source my be received all over the world, it makes for different traffic patterns Pitty Cisco's online docu doesn't (to my knowledge) desribe how at programmers level the subnets can be created and used.

Poor cable companies, as in matter of speaking, because I'm quite sure that already they concentrate a lot of data over their whole cable netweork, and that their internal trafic limits are simply limited by a few (?) cetral routing facilities. All that global extra data can't have its seperate place that way, even though block-wise for instance the cables' surplus bandwidth may be more than adequate for quite some users.

Protection. Generating keys/random data. Multiple network routings.

Java

Some of my java experiment files I haveon this system, might be fun to ponder on. All the new Java software uses the same language, after all. I can't escape the serious and overriding notion that if I use basic connectivity, such as making a socket connection between a Java applet or program and anything else, that basic connectivity will gouvern all other behaviour, such as complicated transaction schemes and database access requests.

My experiments on not all machine types, but still relevant ones, showed (last year or so when I had one to experiment with) umistakingly that those sockets can be set up, and that data does flow over them, but just like many java-based internet applciation invaryably encounter flow problems, where either it takes unreasonably long to make data actually transfer (even though there is no actual error, except maybe timeout, possibly of the user), or the flow is very unsteady and an insult to the actually available bandwidth.

Food for thought. Theoretical thought even, which I did many years ago when I experiment-wise inverted the behaviour of unix processes on (fast) HP-UX and SunOS machines, and wrote some summaries about process algebra and formal protocol description languages.

A little java applet as example in a simple html (web): page

title Echo Server /title

applet codebase="c:\Theover\Java\" applet code=EchoTest.class width=200 height=150 /applet

A java echo example, java (I think jdk 1.1 from memory) experimental code:

import java.io.*;
import java.net.*;

          public class EchoTest {
              public static void main(String[] args) {
                  Socket echoSocket = null;
                  DataOutputStream os = null;
                  DataInputStream is = null;
                  DataInputStream stdIn = new DataInputStream(System.in);
			
                  try {
                      echoSocket = new Socket("localhost", 179);
			System.out.println(echoSocket.getInetAddress());
                      os = new DataOutputStream(echoSocket.getOutputStream());
                      is = new DataInputStream(echoSocket.getInputStream());
                  } catch (UnknownHostException e) {
                      System.err.println("Don't know about host: taranis");
                  } catch (IOException e) {
                      System.err.println("Couldn't get I/O for the connection to: taranis");
                  }

                  if (echoSocket != null && os != null && is != null) {
                      try {
                          String userInput;

                          while ((userInput = is.readLine()) != null) {
                              os.writeBytes("echo: " + userInput + "\n");
                              /* os.writeBytes(userInput);
                              os.writeByte('\n');
                              System.out.println("echo: " + is.readLine()); */
                          }
                          os.close();
                          is.close();
                          echoSocket.close();
                      } catch (IOException e) {
                          System.err.println("I/O failed on the connection to: taranis");
                      }
                  }
              }
          }

This code makes a text window on a web pagem which communicates to another party, sort of like a 'talk' application in early Unix-es, I don't know exactly the version, and of course the copyright notice applied to the original code (see sun jdk distribution example suite), NOT to the code with the sockets and all:

/*
 * Copyright (c) 1995, 1996 Sun Microsystems, Inc. All Rights Reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * and its documentation for NON-COMMERCIAL purposes and without
 * fee is hereby granted provided that this copyright notice
 * appears in all copies. Please refer to the file "copyright.html"
 * for further important copyright and licensing information.
 *
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
 * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
 * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
 * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
 * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
 */
import java.awt.*;
import java.applet.Applet;
import java.applet.*;
import java.net.URL;
import java.net.MalformedURLException;
import java.io.*;
import java.net.*;

/*        TextField textField = new TextField(20);
        TextArea  textArea = new TextArea(5, 20); */

public class TextDemo extends Applet {
    TextField textField;
    TextArea textArea;
                  Socket echoSocket = null;
                  DataOutputStream os = null;
                  DataInputStream is = null;

              public void streams()  {
                  System.out.println("---\n");
                  textArea.appendText("-----------\n");
                  /* DataInputStream stdIn = new DataInputStream(System.in); */
			
                  try {
                      echoSocket = new Socket("localhost", 179);
                      String tt;
                        System.out.println( echoSocket.getInetAddress());
			/* textArea.appendText(tt); */
                      os = new DataOutputStream(echoSocket.getOutputStream());
                      is = new DataInputStream(echoSocket.getInputStream());
                  } catch (UnknownHostException e) {
                      textArea.appendText("Don't know about host: localhost");
                  } catch (IOException e) {
                      textArea.appendText("Couldn't get I/O for the connection to: localhost");
                  }

              }


    public void init() {
        textField = new TextField(20);
        textArea = new TextArea(5, 20); 
        textArea.setEditable(true);

        //Add Components to the Applet. 
        GridBagLayout gridBag = new GridBagLayout();
        setLayout(gridBag);
        GridBagConstraints c = new GridBagConstraints();
        c.gridwidth = GridBagConstraints.REMAINDER;

        c.fill = GridBagConstraints.HORIZONTAL;
        gridBag.setConstraints(textField, c);
        add(textField);

        c.fill = GridBagConstraints.BOTH;
        c.weightx = 1.0;
        c.weighty = 1.0;
        gridBag.setConstraints(textArea, c);
        add(textArea);

        streams();
        validate();
    }

    public boolean action(Event evt, Object arg) {
        String text = textField.getText();
        /* System.out.print( text + "\n" ); */
        /* textArea.appendText("[]" + "\n");
        streams(); */
        textArea.appendText(text + "\n");

                  if (echoSocket != null && os != null && is != null) {
                      try {
                          String userInput;

                          if ((userInput = is.readLine()) != null) {
                              textArea.appendText("received: " + userInput + "\n");
                              /* os.writeBytes(userInput);
                              os.writeByte('\n');
                              System.out.println("echo: " + is.readLine()); */
                          }
                              os.writeBytes(text + "\n");
                          /* os.close();
                          is.close();
                          echoSocket.close(); */
                      } catch (IOException e) {
                                  textArea.appendText("I/O failed on the connection to:");
                      }
                  }


        /* textArea.appendText("-----------\n"); */
        textField.selectAll();
        URL url = null;
            try {
                url = new URL(text);
            } catch (MalformedURLException e) {
                System.out.println("Malformed URL: " + text);
                return true;
            }
        AppletContext appletContext;
        getAppletContext().showDocument(url,"_blank");
        return true;
    }

Looking it over (I didn't have it available for some time), I seem to remeber I also wanted to form url page requests with form data in it, hence the url stuff.