No installation. USB stick portable applications.
Swiss File Knife

a command line
multi function tool.

remove tabs
list dir sizes
find text
filter lines
find in path
collect text
instant ftp or
http server
file transfer
send text
patch text
patch binary
run own cmd
convert crlf
dup file find
md5 lists
fromto clip
hexdump
split files
list latest
compare dirs
save typing
trace http
echo colors
head & tail
find classes
dep. listing
speed shell
zip search
zip dir list

Depeche View
Source Research
First Steps

using vm linux

windows GUI
automation

the d3caster
java game engine

command line
file encryption

free external tools,
zero install effort,
usb stick compliant:

zip and unzip
diff and merge
reformat xml
reformat source

java sources

thread creation

cpp sources

log tracing
mem tracing
hexdump
using printf

articles

embedded
stat. c array
stat. java array
var. c array
var. java array
view all text
as you type
surf over text
find by click
quick copy
multi view
find nearby
fullscreen
bookmarks
find by path
expressions
location jump
skip accents
clip match
filter lines
edit text
highlight
load filter
hotkey list
receive text
send in C++
send in Java
smooth scroll
touch scroll
fly wxWidgets
fly over Qt
search Java

Java code example for sending UDP network text.

Send plain or colored UDP network text, then receive and view it instantly with a Freeware tool for Windows and Linux/Mac.

/*
   Example how to send UDP text in Java.
   See also: sfk netlog.

   -  copy this to a file netlog.java
   -  javac netlog.java
   -  run: dview -net
      under Linux/Mac: wine dview.exe -net -linux &
   -  java netlog
*/

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

public class netlog
{
   public static DatagramSocket clSocket = null;
   public static InetAddress clAddress = null;
   public static int iClPort = -1;
   static int iClRequest = 1;

   public static void init(String sHost, int iPort) throws Throwable
   {
      clAddress = InetAddress.getByName(sHost);
      iClPort = iPort;
      clSocket = new DatagramSocket();
   }

   public static void log(String sTextIn) throws Throwable
   {
      String sText   = sTextIn+"\n";

      // change all [red] to compact color codes \x1Fr
      byte[] abData1 = sText.getBytes();
      int    iSize1  = abData1.length;
      byte[] abData2 = new byte[iSize1+100];

      // keep 100 bytes space for header
      int i2=100;
      for (int i1=0; i1<iSize1;)
      {
         if (abData1[i1]=='[') {
            i1++;
            if (i1>=iSize1)
               break;
            abData2[i2++] = (byte)0x1F;
            abData2[i2++] = abData1[i1++];
            while (i1<iSize1 && abData1[i1]!=']')
               i1++;
            if (i1<iSize1)
               i1++;
         } else {
            abData2[i2++] = abData1[i1++];
         }
      }
      int iTextSize = i2-100;

      // add sfktxt header before text
      String sHead = ":sfktxt:v100,req"+iClRequest+",cs1\n\n";
      iClRequest++;
      byte abHead[] = sHead.getBytes();
      int iHeadLen  = abHead.length;
      for (int i=0; i<iHeadLen; i++)
         abData2[100-iHeadLen+i] = abHead[i];
      int iStartOff = 100-iHeadLen;
      int iFullSize = iHeadLen+iTextSize;

      DatagramPacket packet = new DatagramPacket(abData2,
         iStartOff, iFullSize, clAddress, iClPort);

      clSocket.send(packet);
   }

   public static void main(String args[]) throws Throwable
   {
      netlog.init("localhost", 21323);

      netlog.log("[Red]Foo[def] and [Blue]bar[def] went "
                +"to the [Green]zoo[def].");
   }
}

 
Download the free Depeche View Lite Text Search Tool