Old stuff: LispPad AutoLISP Editor by Tony Tanzillo. Visual LISP by WSSW Old small Windows LISP Editor, Version 1.0 was even free. See 1 WCEDIT 2.02 Old ADS editor for DOS R12, can evaluate lisp code from within the editor, free. See 1 CODEKEY Old commercial DOS IDE, internal pretty printer, protect, unprotect, kelvinator. LispPad is a simple, lightweight, integrated development environment for developing and running Scheme code. The language supported by LispPad is based on the R7RS standard for Scheme. LispPad is a simple, lightweight, integrated development environment for developing and running Scheme code. The language supported by LispPad is based on the R7RS standard of the Scheme programming language. 红花 2002年1月 C Builder大版内专家分月排行榜第一 2001年6月 C Builder大版内专家分月排行榜第一 2000年11月 C Builder大版内专家. 리습 에디터 - LispPad (0) 2011.09.14: 선 두께가 있는 폴리선의 외곽선을 그리는 리습 2종 (4) 2011.09.05: 특이한 모양의 구름형 수정 기호(Revision Clouds)를 그리는 리습 (13) 2011.09.01: 브레이크 심볼 표기 리습 (5) 2011.08.29.
DockStation is developer-centric application for managing projects based on Docker. Instead of lots of CLI commands, you can monitor, configure, and manage services and containers using just a GUI.
Features
- Work with services and containers - DockStation helps to manage projects and container settings, e.g. bind a local host to a project, simple version changing, map ports, assign and reassign environment variables, changing entrypoint and start command instructions, configure volumes, quick access to image documentation, quick services containers cleanup and a lot of other useful functionality.
- Work with remote Docker containers - The application helps to manage and observe remote containers. We provide many tools like as logs monitoring, searching logs, grouping, running tools, getting container info. Also we provide amazing authorization tools.
- Backward Compatibility - The application works with Docker Compose. Use you own or third-party docker-compose.yml configs. DockStation generates a clean and native docker-compose.yml file which can be used even outside the application, using the native Docker Compose CLI commands.
- Parser - We have a built-in parser that will help without any problems and deep knowledge of Docker Compose to convert 'docker run' command to Docker Compose format and quickly start working with a project and containers.
I used to spend a lot of time writing free software. This page lists a selection of applications I developed. Some software requires a legacy Mac OS operating system to run, other software can be executed using a (potentially outdated) Java environment. Probably none of my older software projects are interesting anymore these days.
In the last years, I was mostly tinkering with software written in Go, Swift, and Scheme. The list of my software projects below is sorted in reverse chronological order.
SQLiteExpress is a Swift library implementing a lightweight wrapper for the C API of SQLite3 on macOS and iOS. SQLiteExpress provides an object-oriented data model and a clear separation of errors from results and side-effects, using Swift programming paradigms throughout its implementation. SQLiteEpress maintains the programming protocol of the C API and does not provide any help in crafting SQL statements, e.g. in a type-safe manner.
Lisppad
Swift MarkdownKit is a framework for parsing text in Markdown format. The supported syntax is based on the CommonMark Markdown specification. Swift MarkdownKit defines an abstract syntax for Markdown, it provides a parser for parsing strings into abstract syntax trees, and comes with generators for creating HTML and attributed strings.
Swift CommandLineKit is a framework supporting the development of command-line tools in Swift on macOS and Linux. The framework supports managing command-line arguments, provides lightweight functions to deal with escape sequences, and defines an API for reading strings from the terminal.
LispPad is a simple, lightweight, integrated development environment for developing and running Scheme code on macOS. LispPad utilizes LispKit for implementing its interpreter. It provides the following components:
- A fully integrated R7RS-compliant Scheme interpreter (compiler and virtual machine)
- A console with a read-eval-print loop
- A text editor supporting syntax highlighting, smart indentation, parenthesis matching, page guides, etc.
The LispPad library reference manual documents all the core libraries.
LispKit is is a framework for building Lisp-based extension and scripting languages for macOS applications. LispKit is fully implemented in the programming language Swift. LispKit implements a core language based on the R7RS (small) Scheme standard. It is extensible, allowing the inclusion of new native libraries, of new libraries written in Scheme, as well as custom modifications of the core environment consisting of a compiler, a virtual machine as well as core libraries.
So far, performance was not a priority in the development of LispKit. The LispKit compiler does not perform any code optimizations and the performance of the system is below state of the art Lisp and Scheme implementations.
NumberKit is a macOS framework implementing advanced numeric data types for the Swift programming language. The current version implements three new numeric types:
- BigInt: arbitrary-precision signed integers
- Rational: signed rational numbers
- Complex: complex floating-point numbers
ContainerKit aims at providing a comprehensive container class library for the Go programming language which allows programmers to make use of a broad range of container abstractions in a consistent fashion. The library design focuses on the following properties:
- Simplicity:The library is built on top of a small number of core concepts, to keep the learning curve for users as flat as possible.
- Consistency: The concepts are reused uniformly across the various container abstractions. This includes consistent usage of names, types, and method signatures.
- Expressiveness: Rich abstractions allow users to express processing logic in a concise, declarative fashion. The simplicity and consistency properties are important because they guarantee ease of use. Expressiveness is important because it promotes concise, readable client logic.
The implementation of Container Kit is quite unconventional in the sense that it is based on a number of design patterns, introducing features from class-based object-oriented languages. This approach allows for composing Go containers out of small reusable building blocks. Ultimately, it is this methodology which guarantees the consistency and expressiveness of the properties explained above.
Keris is an extension of the programming language Java which focuses on the development of extensible sofware. Keris introduces extensible modules as the basic building blocks of software. Software developed with Keris is closed in the sense that it can be executed, but it is open for future extensions. Such extensions are non-destructive: they do not require source code modifications and existing binaries persist. Keris was developed as a part of my PhD thesis between 2001 and 2004.
Funnel is a programming language that is conceptually based on functional nets. The Funnel compiler maps Funnel programs to an intermediate language which is then interpreted by a virtual machine. Funnel programs can access the full Java API through a rudimentary Java interface. This implementation is an experimental prototype.
Jaco is an extensible Java compiler. This software was part of my master's thesis at the University of Karlsruhe. Jaco is written in an extension of itself: Java + extensible algebraic types. It runs on all platforms for which a Java virtual machine is available. Jaco was written in 1997. Later on, Jaco has been used in a couple of projects at EPFL and the School of Computer and Information Science of the University of South Australia.
JavaParty is an extension of Java with features that facilitate the development of distributed applications. It provides:
Listpad Calendar
- Transparent Remote Objects: Although RMI seems to offer this, you really have to re-work your multi-threaded Java programs significantly before you can exploit the combined computing power of all your workstations with RMI. JavaParty programs are just a tiny step away from regular Java.
- Object Mobility: JavaParty objects are free to move from one node of the network to another. Object migration results in locality of access and therefore may hide network latency.
JavaParty compiles programs to ordinary Java bytecode, and interfaces with existing Java code, retaining the broad compatibility to Java. I was the original developer of this software, starting in 1995. From 1999 on, it was maintained by staff of the Institute for Program Structures and Data Organization of the University of Karlsruhe, Germany.
Listpad
Pizzeria is a small integrated development environment for the Pizza programming language. Pizza is a superset of Java that incorporates three additional features: parametric polymorphism, first-class functions and algebraic data types with support for pattern matching. Pizzeria was the only free native Java IDE on Mac OS 9 for a long time (middle of the 90ies).
Initially, MacBPM was intended to be a simple BPM (beats per minute) counter. I wrote it in 1989 in order to count the beats of my dance music CDs. From time to time, I added a database module for cataloging music tracks and a playlist compilation utility. MacBPM was mainly useful for DJs. Indeed, in the early 90ies, there have been a lot of users since there was no other comparable Mac program available. This is a Mac OS 9 application and given all digital DJing tools today, there is no need to port this to any modern operating system.
Listpad Class
LiLa is a Lisp programming environment for Mac OS 9 with a built-in interpreter and compiler. I started working on this more than 20 years ago. The Mac OS version is actually a port of my former Amiga Lisp interpreter. I wrote LiLa in order to get experience with the implementation of functional programming languages. LiLa is completely written in Modula-2. This allowed me to include a lot of multi-purpose modules I wrote during my Amiga times (including long integers, complex numbers, a garbage collector, etc.). Although the system is not really fast, it was my Lisp interpreter of choice for a long time. This software has been linked from my homepage since 1993.