Wicket is a lightweight, component-oriented framework that does much to bring the easy, intuitive interfaces found in desktop applications to Java Web development. In this series Nathan Hamblen (of databinder and coderspiel blog ) introduces key aspects of Wicket that differentiate it from other Web application frameworks This first ( of 3 ) article investigates Wicket's virtual state, demonstrating the many ways Wicket accommodates both stateless and stateful Web application development.
Haskell's overloaded numerical classes can be (ab)used to do some symbolic maths. This is in no way a new discovery, but I thought I'd write a few lines about it anyway since I've been playing with it the last few days. First we need a data type to repres
Hint: Don't tell your kids that they are. More than three decades of research shows that a focus on effort—not on intelligence or ability—is key to success in school and in life 11/2007
Methods that are specialised on sub-classes introduce a number of well-known challenges for type systems: these challenges can now be met in a type system for the pattern calculus. The latter provides a foundation for computation based on pattern-matching in which different cases may have different specialisations of a default type. Supporting type specialisation by both type substitution and sub-typing makes it possible to type functions whose cases correspond to the different.
A next-generation package manager called Nix provides a simple distribution-independent method for deploying a binary or source package on different flavours of Linux. Even better, Nix does not interfere with existing package managers. Nix allows different versions of software to live side by side, and permits sane rollbacks of software upgrades. Nix is a useful system administration tool for heterogeneous environments and developers who write software supported on different libraries, compilers, or interpreters. Why provide yet another package manager? Because current package managers fall short in the upgrade cycle. Everyone gets burnt by software dependencies, at some point. In particular, with a major release of any given distribution, many people choose not to upgrade until it is time to do a fresh install. With Nix, upgrades are always safe: they don't overwrite previously installed packages. This means previous versions will continue to work, and you can easily roll back.