I enjoy writing and in addition to my published books I offer free Open Content material on this web page. I both enjoy and appreciate feedback on ideas for material and reporting any errors. I offer free web books on Java and artificial intelligence programming, Common Lisp programming, and a new but still incomplete book The Software Design and Development Book. I am also working on a Ruby AI book and a short paper on AI design patterns. I also have a link to an old paper on AI, Go and Consciousness (updated 1/25/2004) available here. I have a short paper Jumpstarting the Semantic Web available here (new version 1/14/2005). I am also starting to include my fiction (short stories) here in addition to computer science web books.
Jaskell is a functional scripting programming language that runs in JVM. The name "Jaskell" stands for Java-Haskell, but it is not haskell 1. Most of the current scripting languages are Object-Oriented. Though they more or less have functional tastes (Ruby's sexy closure, for example), the heart of them are still Object-Oriented. One of the most important essenses of functional programming (combinators) is yet to be brought into Java. 2. Jaskell brings with it higher order function, function currying, pattern match and monadic combinator support. 3. Monadic combinator is ideal for designing Domain Specific Language. It is relatively easy to tailor Jaskell runtime to make domain specific syntax look like simple atomic statements. See Neptune for a real example. 4. Jaskell is nothing but a Java library that passes Java objects in and out of the interpreter.
In our professional software development, we have focused on finding ways to help developers work more effectively. Despite the range of programming languages available today, we are still limited by them. It makes sense to extend the existing languages to create more domain-oriented ones, which allow writing programs on a higher level and in a manner that is more natural to each domain. With an instrument that allows creating language constructs as simple as creating classes or methods is in a conventional language, you can significantly change the way you develop software. This new style of programming, when you create specialized languages, use them to develop software, and extend them when and how required, is called Language Oriented Programming (LOP). MPS Story Meta Programming System started in 2003 as a research project. In 2004, its underlying concepts were described in the Language Oriented Programming article.
The goal of this project is to provide free, high quality, interactive, web-based resources for students and teachers of probability and statistics. Basically, our project consists of an integrated set of components that includes expository text, applets, data sets, biographical sketches, and an object library. Please read the Introduction for more information about the content, structure, mathematical prerequisites, and organization of the project. Technologies and Browser Requirements This site uses a number of advanced (but open and standard) technologies, including the Mathematics Markup Language (MathML), for portable and notationally correct mathematical expressions, and Java for the applets. See the Introduction for more information about the technologies used.
Nailgun is a client, protocol, and server for running Java programs from the command line without incurring the JVM startup overhead. Programs run in the server (which is implemented in Java), and are triggered by the client (written in C), which handles all I/O.
Buildr is a build system for Java applications in Ruby Maven compatible * A simple way to specify projects, and build large projects out of smaller sub-projects. * Pre-canned tasks that require the least amount of configuration, keeping the build script DRY and simple. * Compiling, copying and filtering resources, JUnit/TestNG test cases, APT source code generation, Javadoc etc * A dependency mechanism that only builds what has changed since the last release. * A drop-in replacement for Maven 2.0, Buildr uses the same file layout, artifact specifications, local and remote repositories. * All your Ant tasks belong to us! Anything you can do with Ant, you can do with Buildr. * No overhead for building “plugins” or configuration. Just write new tasks or functions. * Buildr is Ruby all the way down. No one-off task is too demanding when you write code using variables, functions and objects. * Simple to upgrade to new versions. * fast
BlazeDS is the server-based Java remoting and web messaging technology that enables developers to connect to back-end distributed data and push data in real-time to Flex® and AIR™ applications with features Remoting provides a call/response model for accessing external data from FlexAjax applications. Developers create applications that make asynch requests to remote services, including HTTP, SOAP and RMI Java objects.Transparent data transfer between AS and Java data types, including Java5 enumerations * proxy avoids browser limitations such as "x domain restriction" and inability to s/get headers and see errors. this is specifically for SOAP and HTTP (REST) services. * AMF Provides binary format for data (de)serialization and RMI. AMF significantly increases delivery performance compared to using plain XML over HTTP or WS * pubsub over HTTP * Ajax client lib * Flex apps pubsub to JMS queues * directly expose components in frameworks ie Spring to Flex clients wo writing code
war for tomcat/jetty which groks xforms Orbeon Forms is an open source forms solution that handles the complexity of forms typical of the enterprise or government. It is delivered to standard web browsers thanks to XForms and Ajax technology, with no need for client-side software or plugins. Orbeon Forms allows you to build fully interactive forms with features that include as-you-type validation, optional and repeated sections, always up-to-date error summaries, PDF output, full internationalization, and controls like auto-completion, tabs, dialogs, trees and menus. Orbeon Forms is built around a user-friendly Ajax-based XForms engine, which brings standard W3C XForms to mainstream browsers, and the XPL engine, a mature, high-performance XML pipeline engine for processing XML data.
AR for Java; ActiveObjects is an intuitive, pure-Java ORM. AO is designed from the ground up to be extremely simple and easy to use from an API standpoint. AO can be used with either an existing database schema, or it can auto-generate the database schema from the user-specified entity interfaces. ActiveObjects also supports Rails-style database migrations, allowing incremental changes and refactoring of the database schema without data loss.AO can perform better than data mapper ORMs due to its natural use of lazy-loading coupled with sophisticated caching mechanisms. However, performance is not the primary design goal of the project. Rather, the intention is to create an ORM which is powerful and yet extremely natural to use and integrate into your project. This design has lead to certain performance benefits (such as lazy-loading), but on the whole, data mapper ORMs are inherently slightly more performant than AO