Tuesday, December 6, 2011

Revision 16 released

I've just released LFScript 4 revision 16 and a new Live CD.

The Live CD can be run on 32-bit (i486, i586 and i686) and 64-bit architectures and now also has support for VMware Player (SCSI cd-rom, SCSI harddisks and sound card).

Monday, November 28, 2011

Revision 15 released

I've just released LFScript 4 revision 15. The main focus for this revision was making it possible to use LFScript on older 32-bit architectures.

As a result of this new revision, a second Live CD image has been created for use on i486 and i586 architectures.

Sunday, November 20, 2011

Revision 14 Release Notes

Today, I'm releasing LFScript 4 revision 14 (UNSTABLE) and an accompanying Live CD.

The reason for the "UNSTABLE" mark is, that it does not include scripts for many popular applications, including any graphical environment.

If you want to build a graphical system, use revision 12.

Changelog

For this revision I focused on proper Live CD creation. The changes listed here improve the Live CD creation process and improve the look of Live CD's that are branded with the 'fsos' script.

  • LFScript now reloads /etc/profile, if it is created in a script.
  • Removed all unchecked scripts, which includes most BLFS scripts. If you want to build a graphical system, use revision 12.
  • Removed the scripts for previous LFS version.
  • Merged 'init.sh' with the 'buildiso' script.
  • Made several improvements in the 'buildiso' and 'livekernel' scripts.
  • Renamed 'fsos2' to just 'fsos'. The version number of fsos will from now on be the same as the LFScript revision that was used to create it.
  • Added a script to the 'fsos' directory that merges Live CD's of different architectures into a single image.
  • Updated and created the fsos kernel configurations for i386 and x86_64 systems.
  • Added the source SVG for the 'fsos_boot.png' isolinux splash screen.
  • Updated the 'fsos2' script and renamed it 'fsos-nox' (as it contains 'no X11'). Added a script 'fsos-nox-32' which adds software which only compiles on 32-bit systems (memtest86+).
  • Updated the documentation to reflect the current version.

New Live CD


As a result of all the changes, I've been able to build a new Live CD. From now on Live CD's will carry the same version number as the LFScript revision that was used to create it. So, this new CD is "fsos4r14".

Note that because revision 14 does not have scripts for X11, Gnome and KDE (revision 12 does), this Live CD is also without a graphical environment.

Starting with this release, the same Live CD can be used to boot i686 (32-bit) systems and x86_64 (64-bit) systems

This new Live CD is now the recommended host system to use when building LFScript 4.

Sunday, November 13, 2011

Revision 13 Release Notes

I'm about to release LFScript 4 revision 13 (unstable). Several important changes have been made, and will be made in the upcomming revisions. Therefore it is important to read the following release notes:

Weekly Release Cycle

Revision 13 is the first in a new weekly release cycle. Revision 14 will be released no later than the 20th of November.

Rev. 13's (and also the next few revisions) main reason for being is to commit several big behind-the-scenes enhancements that were made over the last few months. I'll mark these revisions as "unstable" because they have not been tested thoroughly.

A new incarnation of ScriptFactory has been incorporated in LFClass which will allow me to keep up to date with recent versions of LFS, like I already did for BLFS up to a few months ago.

Change of License

Beginning with revision 13, LFScript and all it's parts are released under the MIT (expat) License, and no longer under the GNU GPL.

This change in Licence will not change anything in the way I'll be developing or distributing LFScript. If anything, you (the user) are getting more freedom in what you are allowed to do with my work.

Read the MIT-License on opensource.org for more information.

LFS-7.0

Rev. 13 includes scripts for a current development version of Linux From Scratch, which is slightly newer than LFS-7.0. These scripts are known to run without errors, but I have not yet tested an installed version of the system.

LFS-7.0 brings a few small changes in the LFS filesystem hierarchy, which possibly breaks compatibility with the LFS-6.8 scripts that were included in the previous revisions of LFScript. Nevertheless, I decided to keep the LFS-6.8 scripts in revision 13 because I have not yet been able to update the BLFS scripts to a current version. While most BLFS packages may compile on an LFS-7.0 system, I have not tested this.

With LFS-7.0, also the host system requirements have changed and unfortunately this means that you can not use any of the current LFScript Live CD's to build it. A new minimal Live CD is being prepared and will be released together with the revision of next week.

Breaking Script Compatibility

A recent blog post discussed a new script layout which I've decided to implement. I've also decided to merge the compilation() and installation() functions in the scripts. The LFS-7.0 scripts all include an empty compilation() function for now, to maintain compatibility with revision 12. But as soon as I've updated the BLFS scripts, these will be removed and compatibility will be lost, so you will then have to reorganize the contents of your custom scripts.

Other small changes

  • When the MD5 checksum fails on a particular file, the file is automatically downloaded again from a mirror.
  • A few aspects of the host system are checked before building a system, and a warning is issued if it is determined it is unlikely you will be able to complete a build without error. This does not replace the need to ensure that your system meets the host system requirements yourself.
  • Some documentation files have been updated
  • The scripts in the 'ScriptFactory' directory have been slightly modified and are expected to be replaced entirely in one of the next revisions.
In conclusion

If you want to be sure you'll be able to build and use a new system, you should not download revision 13 (unstable) but stick to revision 12 (stable) for now. If you want a bleeding edge system, get revision 13.

Friday, November 4, 2011

Revision 13: November 13

I'll be working on LFScript again next week; Finishing LFS-7.0 scripts, adding some features and integrating Thunder for the interactive configuration. If all goes well, I'll release revision 13 on the 13th of November.

Sunday, October 23, 2011

Framebuffer fun

In addition to making the scripts for LFS-7.0 almost ready for release, this weekend I've been playing with the Linux framebuffer and making it available in Java.

As a result, I decided to make LFScript show a bitmap header (in stead of plain colored text) if you are running it on the Linux console and have a framebuffer:


Compared to the text version:


Friday, October 21, 2011

Combine compilation() and installation() in LFScript?

A new parser for the LFS XML sources (ScriptFactory) is almost finished. It's code is much cleaner than the current ScriptFactory implementation and contains almost no package specific rules (which made the old ScriptFactory a pain to maintain).

Checking the output scripts made me question if it is necessary to keep the compilation() and installation() functions separate. I always had them separated, because the commands in installation() are modified to install the package to a fake root directory.

However, because a small amount of packages use one installation command in between compilation commands, the order of commands is slightly distorted in those scripts. It's nothing serious, but I'm still wondering if combining the two functions would be a cleaner solution. It would break compatibility with earlier LFScript 4.0 scripts though.

Wednesday, October 19, 2011

No indentation in LFS-7.0

I've decided to change the layout of the scripts I'm preparing for LFS-7.0.

Until now, most commands in a script had an indentation of 2 or 4 spaces. However, this always presented a few problems, especially with the 'cat' command, which potentially could lead to bugs. To simplify things (and avoid unnecessary bugs) I decided to remove the indentation.

I then made some creative use of the '#' (comment) character to clearly mark the different sections of the script.

Here is a comparison, the left script is in the new layout (click to enlarge):

Personally, I believe the scripts look much better than before.

Monday, October 3, 2011

Et tu, Wuala?

As some of you may know, I've been a real fan of Wuala. Their free "trading space" functionality made it possible to keep a lot of GB in the cloud (including the LFScript LiveCD images). And because it's secure it was also perfect for my personal backups.

But in a year, that will be gone... By then, I'll only have 2 GB left, which is not enough to publish Live CD's (not even mentioning that my personal backups will be gone).

Wuala made the unfortunate decision to kill one of the two features which made me use it, and had me talking people into using it. They tell me that "trading storage" had to go, to make room for new (really not impressive) features, which loosely translates to "we are now owned by a corporation that expects us to make money, so now please buy that which used to be free".

And that is not the cynic in me talking, no! I learned about Wuala in a presentation that talked about this very feature being the very thing that defined Wuala. Trading storage equals Wuala.

There already have been a lot of people complaining about the issue, so let's hope they change their mind about this.

In the mean time, please recommend alternatives to me. Thanks.

Sunday, September 25, 2011

Logic Simulator

This weekend, I've started working on an application that I have been wanting to build for a long time.


It's a logic simulator. Above picture shows a working simulation of an SR-latch (a memory cell) composed of two NAND-gates, connected to two switches and one LED.

Tuesday, August 30, 2011

Thunder Website Launched

I've just launched a website for "Thunder", my new Text user Interface project.
You can now also download a compiled version of Thunder, which makes it easier for new developers to get started.

There are a couple of things not working (for example, the API is not yet accessible), and there might also be some problems with the binary release (I have not checked the source in a while) but I'll be fixing all those issues over the next couple of days.

The important thing for me was to get it out there.

Developers, try to build the Example Application and let me know what you think.

Sunday, July 31, 2011

Thunder/Lightening demo

Tomorrow I'll release the code for Thunder, Lightening and a few other tools.

This weekend I've been writing a user interface (using Thunder) for Spider Solitaire, which for now will be the default demo of the project.

You can try the demo here (Java required).

Screenshots
On Windows XP (custom platform independent terminal):


On Ubuntu (xterm):


On Ubuntu (gnome-terminal):

Wednesday, July 27, 2011

Introducing Thunder & Lightening

(note the "e" in "Lightening")



I'm happy to announce that a development version of a new text user interface system for Java (that I have called "Thunder", due to it's visual likeness to Visual Basic for DOS) will be released on the first of August.

The project is able to run on Avian, the minimalist Java VM that is also used in LFClass, making it an excellent choice for use in embedded systems.

This project will provide the UI for LFScript 5. Also, the current prompt based interactive configurator in LFScript 4 will soon get a Thunder based user interface.



In addition to being able to run on a Unix terminal, a cross-platform GUI terminal enables applications based on Thunder/Lightening to run on any graphical OS, including Windows and Mac.

Thunder (and Lightening) will get their own project page at
http://marcelweb.nl/thunder/.



"Thunder" versus "Lightening"
Thunder is based on another new project of mine, which I have called "Lightening". The name "Lightening" was chosen because the code is leight weight (meaning platform independent) and indeed closely related to "Thunder".

Lightening provides back end services for widgets (like event dispatching), while Thunder provides the actual widgets and thus the look and feel. Developers will often only deal with the Thunder API.

The Lightening API is flexible enough to allow other kinds of user interfaces to be built on top of it (for example a graphical UI) but since there already are many excellent projects providing GUI's (Swing and SWT among others) the primary focus is Text UI's through Thunder. Also, Thunder currently only implements one look (or theme), while in the future it will probably be extended to provide a pluggable look and feel.

Saturday, June 4, 2011

Revision 10 and what to do before LFScript 4 goes stable

LFScript 4 revision 10 will be released in a few minutes.
It contains a few bugfixes, it makes the build of Gnome more stable and scripts for VLC media player and OpenJDK are now ready for use.

'TODO' overview
The short version of what is left to do is: Make sure that LFScript 4 contains
everything that was in LFScript 3.3 and a proper fsOS2 Live CD (or DVD) can be
produced for both 32-bit and 64-bit machines.

The rest of this blog post will explain what is exactly on my 'TODO' list before I will declare LFScript 4 as "stable" and it will get version number 1.0 (it is now version 0.7). Note that I may release a few more revisions before this happens.

Numbers in this article (like #766168) refer to bug entries in Launchpad
(https://bugs.launchpad.net/lfscript). It is there that you can check the status
for each item on this list. When all bugs have been fixed, 1.0 will be released.

Make sure everything in Gnome works perfectly
At this moment (revision 10) Gnome will compile without problems, but at run time there are still some minor problems:
  • GDM will not allow you to login (it does not display a list of users or user/password text fields), nor will it allow you to reboot or shutdown, making it pretty useless (#792918).
  • If GDM is run at boot (as the default display manager), it will block the initialization of text mode logins, making it impossible to login in any way (#792919).
  • The Gnome menu editor will not work if PyGTK is not installed. PyGTK is currently not a dependency of any Gnome script (#792920).

Some additional software should also be included, in particular Gnome-Media (to allow volume control in Gnome) and GParted (partitioning software) (#792921).

Other issues
There are also still some minor problems with non-gnome scripts;
  • Firefox does not link to the Java plugin if OpenJDK is installed (#792925).
  • Firefox does not have an entry in the Gnome applications menu (#792927).
There are also some things which are still to be implemented for a Live CD:
  • A live CD should be ejected before shutdown or reboot (#792928).
  • The live CD should start with the console linked to a framebuffer device (this will allow Tux to present itself at boot and provide better color support for text-mode applications). The script 'init.sh' does not create a framebuffer device file (#792930).

Add remaining scripts from LFScript 3.3 (#766168)
Scripts which were available in LFScript 3.3, but still need to be updated for use in LFScript 4:
  • Xfce additional software (beyond xfce-core)
  • KDE additional software (beyond kdebase)
  • Gnome runtime requirements (consolekit, pygtk)
  • Gnome additional software (a few have already been included in LFScript 4, but not all)
  • Thunderbird
  • A nice theme (I used 'candido' in LFScript 3, but maybe fsos2 should have something new)
  • Extra fonts

Written documentation (#792932)
Because LFScript 4 has had quite a few changes recently, I've deliberately neglected to keep the documentation up to date (with the exception of the video tutorials). After all, what's the point in writing extensive documentation for features that will change or be dropped shortly after. But now, I feel that it's time to write some complete and properly formatted (as in: not only in plain text, maybe in docbook) documentation.

Merge scripts into ScriptFactory (#792933)
My latest revisions have been about implementing scripts, and not about preserving the differences to be applied in later versions of LFS and BLFS. Most people do not use ScriptFactory at all (and may even think "What the hell is ScriptFactory?") so this is only a minor issue. But it is something that needs to be done for a 1.0 release.

Did I miss something?
It's possible I'll uncover some other minor issues in the time before I release 1.0, in which case I'll file a bug on it at Launchpad.

The bug reporting tool is open for everyone with Launchpad account (which you can get for free). So, if something is missing from this list and also not yet reported on Launchpad (see link at the top of this post) feel free to report it.

Monday, May 30, 2011

Revision 9 released

This revision includes scripts for LFS-6.8 and BLFS-r8882. There have been a number of changes and a lot of bugfixes. Some highlights:
  • Added script for Xfce 4.8.
  • Gnome should now be able to build and run properly.
  • Added an interactive configuration utility which will run when you install a system. This will set up the default window manager and automatically configure your system to start in graphical mode (if you have X11 installed) and prompt you to set a root password.
  • Improved on the way log files are stored.
  • Added support for PRE-installation scripts.

Wednesday, May 11, 2011

Revision 8 released

LFScript 4 revision 8 has been released.

This is mostly a bugfix release. This revision includes scripts for LFS-6.8 and BLFS-r8879 (just like revision 7 did).

One new feature deserves a mention though; Whenever a specified URL in any script is no longer valid, LFScript will now automatically try to download that file from my new code repository (see my previous blog entry).

Tuesday, May 10, 2011

Mirror time

I've received a few reports about source code download problems and MD5 checksum failures.

MD5 issues
The MD5 failures are almost always for the LFS bootscripts and Udev configuration tarball. This issue is mostly my fault, as I placed the development URL for these sources in the scripts. The development sources are re-created daily by the LFS folks, thereby also changing the checksum daily. The next LFScript revision will reference the proper 6.8 download locations.

It's worth noting that whenever I fix something like this, you can download the fixed files from the development repository (http://www.wuala.com/marcelvdboer/Sync/lfscript-4.0). Also, if a bug report has been filed, it will be set to "Fix committed" indicating you can download it from that repository.

Source code repository
There are also people who don't like the fact that after a revision of LFScript has been released for some time, some source code packages are not downloaded automatically any more. This is due to the fact that some developers move or even remove source code from the web whenever a new version of their software is released. Though it seems easy enough to go to Google, type in the missing file name, then download it manually to the sources directory, people still complain about this.

To solve this issue, I'm now building a source code mirror of my own, and the next revision of LFScript will automatically try this repository if a primary URL is down. I didn't want to link to third party repositories because of the (remote) possibility it will increase their traffic too much. The repository will contain source code for scripts included in the most recent version of LFScript only.

The repository is accessible through http://lfscript.org/sources. You can use this link to verify the repository contains a required file (and then let me know if it doesn't, so I can fix it), but you should not download files manually from there. Use LFScript to download your files.

It's still under some construction, but the repository should be fully populated by the time the next revision of LFScript is released.

Saturday, May 7, 2011

Useless OS 1.2 - x86 assembly

This is a bit of a technical entry, which by the way has nothing to do with LFScript at all...

For one of my projects, I'm learning a bit of x86 assembly.

Some initial goals were:
- Print a string of text on the screen
- Be able to use all 16 colours
- Position the text cursor
- Do NOT use BIOS interrupts (because it may eventually have to run in protected mode)

I came up with this:

%define  CODE_BASE  0x07C0

;; 'UselessOS 1.2' a.k.a. 'Print some coloured text, position a cursor and quit'
;; Created: 2011-05-06/2011-05-07
;; By: Marcel van den Boer
;;
;; Released in the PUBLIC DOMAIN
;;
;; Build and run with:
;;   $ nasm -f bin -o colortext.bin colortext.asm
;;   $ dd if=/dev/zero of=colortext.img bs=2880 count=512
;;   $ dd status=noxfer conv=notrunc if=colortext.bin of=colortext.img
;;   $ qemu -fda colortext.img
;;
;; Resources:
;; - http://mikeos.berlios.de/write-your-own-os.html
;; - http://www.jamesmolloy.co.uk/tutorial_html/
;; - http://wiki.osdev.org/Memory_Map_%28x86%29
;; - http://www.tarleton.edu/computerscience/documents/CS%20380/ ...
;;          ... Labs/Lab%203%20-%20Kernel.pdf

; Color definitions
%define  BLACK    0x0
%define  BLUE     0x1
%define  GREEN    0x2
%define  CYAN     0x3
%define  RED      0x4
%define  MAGENTA  0x5
%define  YELLOW   0x6
%define  WHITE    0x7

; Color brightness
%define  NORMAL   0x0
%define  BRIGHT   0x8

; Video memory facts
%define  COLOR       (BACKGROUND << 4 | FOREGROUND)
%define  CURSOR      ((CURSOR_Y * COLUMNS) + CURSOR_X)
%define  VIDEO_BASE  0xB800
%define  COLUMNS     80
%define  ROWS        25

; Text to print
%define  MESSAGE  'Useless OS 1.2 loaded... Goodbye!'
%define  FOREGROUND  (YELLOW | BRIGHT)
%define  BACKGROUND  (BLUE   | BRIGHT)

; Where to place the cursor
%define  CURSOR_X  79
%define  CURSOR_Y  24

init:
    ; Note: This section marked 'init' is not required for the remaining code
    ;       It's just here for my own reference
    cli

    ; Set up stack
    mov ax, 0x07E0
    mov ss, ax
    mov esp, (0x0007FFFF - 0x00007E00)

cursor:
    ; Lower byte
    mov byte al, 0x0F
    mov word dx, 0x03D4
    out dx, al

    mov byte al, CURSOR
    mov word dx, 0x03D5
    out dx, al

    ; Upper byte
    mov byte al, 0x0E
    mov word dx, 0x03D4
    out dx, al

    mov byte al, CURSOR >> 8
    mov word dx, 0x03D5
    out dx, al

start:
    ; Initialize registers which will be modified later (pointers)
    mov word si, 0
    mov word di, MSG_BASE

    ; Initialze registers with non-changing data
    mov word ax, CODE_BASE
    mov word bx, VIDEO_BASE

    ; Set character color
    mov byte ch, COLOR

fetch:
    ; Fetches the next character
    mov word ds, ax     ; Align with code
    mov byte cl, [di]   ; Fetch character
    inc di              ; Increment character index

print:
    ; Prints the most recently loaded character
    mov word ds, bx     ; Align with video memory
    mov word [si], cx   ; Print character
    add si, 2           ; Increment video index

branch:
    ; Fetch the next character if the end of the string has not been reached
    cmp cl, 0
    jne fetch

    ; Otherwise fill the screen with the last (null) character
    cmp si, (COLUMNS * ROWS * 2)
    jl print

end:
    ; Finally, wait forever
    jmp $

data:
    MSG_BASE db MESSAGE, 0

padding:
    ; Required to be recognized as a boot sector
    times 510-($-$$) db 0
    dw 0xAA55


(It is has version number 1.2 because: "1.0" printed the string and cleared the screen, "1.1" added colour and "1.2" added cursor management. Though every version was made in the last two days.)

Enjoy.

Tuesday, April 12, 2011

Revision 7 released - Introducing LFClass

So here it is, a new revision of LFScript 4, and a few (big) announcements.


Functional changes
The most important functional change is the addition of the new LFClass library, which is now required for ./lfscript to run properly (because the new, fast and improved dependency resolution has been written in Java).

This introduction of a Java based application into the core of LFScript will (hopefully) go unnoticed for most people, because two standalone executables (one for 32-bit and one for 64-bit) are included in the release, making the presence of a JVM entirely optional.

However, if you do experience problems, please file a bug on it.

A list of all code changes can be found in the changelog. 

The road to LFScript 5
LFScript 4 will be used as a platform for the development of LFClass, which eventually will become the fifth rewrite of LFScript, warranting a version bump to 5.0.

Because LFClass will be developed at the same time as LFScript 4 (gradually replacing LFScript 4 code with LFClass), version 5.0 will slowly come into existence, while previous version bumps where instantaneous.

While not all code has been replaced with Java, LFScript will keep a version number 4. Revision 7 includes LFScript 4 v0.4.

Legal changes
LFClass (which includes ScriptFactory) is released under the MIT (Expat) license. The license is short, simple, permissive and accurately describes how I currently feel my software should be used.

However, the main application in LFScript  ('./lfscript') will remain GPL licensed until all of it's contents have been remade in Java.

As all scripts generated from LFS and BLFS already were MIT licensed, you can deduce that in time all of LFScript will be MIT licensed.

(Note that the binaries included in revision 7 in 'lfc/build' are also subject to other licenses. Read 'lfc/binary-license.txt' for details) 

Download
Link to the latest version: http://lfscript.org/latest.tar.bz2

Saturday, April 9, 2011

Development code access and contributions

In stead of periodically uploading new revisions, I now give you direct read-access to my local development copy of LFScript. This copy may not always be in working order (you should never assume it is), but it is the exact version I'm currently working on. Any change I ever make, is on-line in minutes.

There are two ways to access my files, either by viewing them online through a web interface, or by launching an on-line version of Wuala (no login is required in either case).

The web interface is limited. If you want to download more than one file, use the on-line version of Wuala; In the web interface, click "Open in Wuala" (Java required).

Also, anyone with a free account can now upload their own contributions to the new "lfscript" Wuala group. Any contributions made are also visible to people without an account. Any contribution should be either in the public domain or MIT (Expat) licensed, otherwise it is removed.

Any contribution which is properly licensed, will remain available either in this group or will be moved to LFScript's development folder. So even if it is not included in LFScript, it will remain published here (unless you yourself removes it).

Thursday, April 7, 2011

Three new video's

Well, I will never speak of release dates again. It seems I do not keep to them anyway. So I won't tell you that I'll release LFScript rev. 7 within 48 hours. No, you will not get it out of me...

I will tell you however, that today I've produced three new video tutorials. One of them is not a screencast of a Virtual Machine. Can you tell which one?

Installing a system (using LFScript)

Creating a Live CD

Installing the live cd system (without using LFScript)

Saturday, April 2, 2011

Al-... most... done....

I'm currently building the 32-bit binaries for the next Live CD. Tonight I'll build the 64-bit base system. Tomorrow I'll combine the two in one ISO and publish it.

As usual, there are some scripts which do not quite like the upgrade to the new version of LFS and BLFS... (Oh yeah, surprise! I do include scripts from the latest snapshot of BLFS in next release.) If this last rebuild again presents these problems, the Live CD will feature KDE3 in stead of Gnome, but released it will be!

LFScript rev. 7 may possibly be released later today, and otherwise it will be released together with the Live CD, tomorrow.

Also, I've been working on the dependency resolution issue I blogged about a few months ago. Possibly, a fix will be included in rev. 8. However, the fix might be a bit unorthodox... More on this later...

Thursday, March 24, 2011

Passed SCJP

Today I passed the SCJP (or OCPJP, as it is now known) exam. This makes me a certified professional Java programmer.


Preparing for this exam caused some delays in updating LFScript to be able to work with LFS-6.8. However, I am happy to report that I will make up for the delay next week. By April 2nd, LFScript should be back on track:
  • A new video tutorial (Installing an LFS system) will be recorded in the next couple of days. This should complete the basic set of tutorials.
  • I'll be releasing an updated Live CD containing LFS-6.8 in both 32- and 64-bit, some programs, X and Gnome from BLFS (probably no version change and in 32-bit only).
  • VLC media player will be included in LFScript. A small but long awaited addition.

Also, if you have asked questions through Launchpad, here, or anywhere, I will be answering them in the next few days.

Unrelated to LFScript; I'm creating a web page for some of my Java based projects. Some of you might have seen some of it already, as it has been in development for some time. The "flagship" of these projects will be a Text User Interface inspired by Java's own Swing framework. Several other projects which will work nicely together with the TUI will be grouped together in a project I'm calling "Cabowter".

A custom font (based upon this one, but expanded to cover several universal character sets) from one of the Cabowter projects will also be included as the default text-mode font on the LFScript Live CD.

You're up to date.