I participated in the design and development of a couple of concurrency libraries for shared-memory multiprocessors long before such machines were popular. So when I started using java.util.concurrent I was already somewhat comfortable with the concepts.
Intype is a powerful and intuitive code editor for Windows with lightning fast response. It is easily extensible and customizable, thanks to support for scripting and native plug-ins. It makes development in any programming or scripting language quick and
Building a project is complex business. Due to the dozens of tasks required in converting your hodge-podge of files into a working program, there exist literally hundreds of tools that do everything from generating source code, to compiling, to testing, t
What's this about? * Language Designers: Looking for operator or function names? Well have a look at the following and remember using existing one may ease the transition :) * Language Users: You know one language and want to find the corresponding operat
JAMA is a basic linear algebra package for Java. It provides user-level classes for constructing and manipulating real, dense matrices. It is meant to provide sufficient functionality for routine problems, packaged in a way that is natural and understanda
Random.org offers true random numbers to anyone on the internet. If you want to know how the numbers are made and what it is that makes them true, read the introduction to randomness and random numbers.
Welcome to LiteratePrograms! LiteratePrograms is a unique wiki where every article is simultaneously a document and a piece of code that you can view, download, compile, and run by simply using the "download code" tab at the top of every article. See Inse
What is that? In case you haven't already used it, prototype.js is a JavaScript library written by Sam Stephenson. This amazingly well thought and well written piece of standards-compliant code takes a lot of the burden associated with creating ri
One of the most important architectural decisions a Java developer can make is how to use the Java exception model. Java exceptions have been the subject of considerable debate in the community. Some have argued that checked exceptions in the Java languag
Agile Development, in particular, eXtreme Programming (XP), has been gaining a lot of momentum because it can effectively address the problems plaguing software development such as mis-understanding customers' requirements, missing deadlines, over-budget,
Like I wrote earlier, it’s frustrating to learn a new language when you don’t get to use it straight away. So I’ve come up with 10 creative ways that will get you started today with making big money (or fame) with your newly acquired Ruby skills
The Google Web Toolkit provides the FormPanel and FileUpload classes to handle form and files submission in a rather elegant way. However, the way it works is not that straightforward when reading the API documentation. Worse, I did not find that many res
What is StringTemplate? StringTemplate is a java template engine (with ports for C# and Python) for generating source code, web pages, emails, or any other formatted text output. StringTemplate is particularly good at multi-targeted code generators, multi
In software engineering, the term software architectural style generally refers to "a set of design rules that identify the kinds of components and connectors that may be used to compose a system or subsystem."* Some common examples of architectural style
SmartSVN is an innovative multi-platform client for Subversionexternal link, the designated successor of CVS. SmartSVN has powerful features like the built-in File Compare/Merge, Conflict Solver and Tag and Branch handling, which make your daily work with
TagSEA aims to be a robust, extendable framework with exemplary tools used for tagging and waypointing source code, resources, or whatever you would like within Eclipse.
Simian (Similarity Analyser) identifies duplication in Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic source code and even plain text files. In fact, simian can be used on any human readable files such as ini files, deployment descriptor
If you read discussions about programming languages, one topic is quite common: "Why do people use an inferior language like Java/C++/what-the-hell and not a superior language like Lisp/Haskell/Python/you-name-it"?
Building a project is complex business. Due to the dozens of tasks required in converting your hodge-podge of files into a working program, there exist literally hundreds of tools that do everything from generating source code, to compiling, to testing, t
Summary Eclipse offers the possibility to build plug-ins automatically outside the Eclipse IDE, which is called "headless build". Eclipse itself is built headless and since Eclipse is an assembly of plug-ins, this feature is also available for any other p
This tutorial is intended to collect together my own experiences using the Java NIO libraries and the dozens of hints, tips, suggestions and caveats that litter the Internet. When I wrote Rox all of the useful information existed as just that: hints, tips
I've hired dozens of C/C++ programmers (mostly at the entry level). To do that, I had to interview hundreds of candidates. Many of them were woefully poorly prepared for the interview. This page is my attempt to help budding software engineers get and pas
syntax highlighting of code snippets in a web page A Javascript module and CSS file that allows syntax highlighting of source code snippets in an html page.
The performance of some applications is limited by the amount of memory that the JVM can address. In particular, multithreaded programs that allocate heavily often bottleneck in garbage collection, and the total time spent in garbage collection can gener
This introductory textbook on reinforcement learning is targeted toward engineers and scientists in artificial intelligence, operations research, neural networks, and control systems, and we hope it will also be of interest to psychologists and neuroscien
This is a collection of Erlang example programs. The document is also available as a postscript or pdf file. All the programs referred to are available in the archive examples-2.0.tgz. The programs attempt to do useful things, thus you will find complete
The Rete Algorithm [References] is intended to improve the speed of forward-chained rule systems by limiting the effort required to recompute the conflict set after a rule is fired. Its drawback is that it has high memory space requirements. It takes adva
This is the web site for a new book I'm working on for Apress which will contain interviews with around twenty of the most interesting computer programmers alive today. It will be a companion volume to Apress’s Founders at Work by Jessica Livingston, an
I have been thinking much about Metaprogramming lately. I have come to the conclusion that I would like to see more examples and explanations of these techniques. For good or bad, metaprogramming has entered the Ruby community as the standard way of accom
Jasmin is an assembler for the Java Virtual Machine. It takes ASCII descriptions of Java classes, written in a simple assembler-like syntax using the Java Virtual Machine instruction set. It converts them into binary Java class files, suitable for loading
The Rete algorithm is an efficient pattern matching algorithm for implementing production rule systems. The Rete algorithm was designed by Dr Charles L. Forgy of Carnegie Mellon University, first published in a working paper in 1974, and later elaborated
This package is the backport of java.util.concurrent API, introduced in Java 5.0 and further refined in Java 6.0, to older Java platforms. The backport is based on public-domain sources from the JSR 166 CVS repository, the dl.util.concurrent package, and
We have seen that as a system gets congested, the service delay in the system increases. A good understanding of the relationship between congestion and delay is essential for designing effective congestion control algorithms. Queuing Theory provides all
This paper dates from 1984, and circulated as a Chalmers memo for many years. Slightly revised versions appeared in 1989 and 1990 in the Computer Journal and the Year of Programming. This version is based on the original Chalmers memo nroff source, lightl
Esta página tem o intuito de reunir material concernente a Expressões Regulares (Regex, regexp, ER). Se você tem algo para acrescentar, registre-se e colabore para disponibilizarmos uma melhor informação.
The following is a list of the algorithms described in Wikipedia. See also the list of data structures, list of algorithm general topics and list of terms relating to algorithms and data structures.
The following is a list of programming languages for the Java virtual machine aside of Java itself. Currently (spring 2005), it comprises close to 200 different systems. It is a mix of experimental, research oriented implementations and of commercial ones
I've always enjoyed fractals, and was curious if scripting languages were up to the task. I wrote a very simple Mandelbrot set generator for my test. Rather than optimizing for each language, I tried to write each program in approximately the same way in
I just saw this page comparing the performance of several languages on a simple Mandelbrot set generator. His numbers show Java being over twice as slow as C, but then I noticed that he's using an older version of java and only running the test once, whic
Why a re-introduction? Because JavaScript has a reasonable claim to being the world's most misunderstood programming language. While often derided as a toy, beneath its deceptive simplicity lie some powerful language features. 2005 has seen the launch of
Duck typing is the concept in programming by which an object is interchangeable with any other object as long as it can run through the same code while providing a sufficiently complete interface
The above block of code demonstrates an in-browser, syntax-highlighting, auto-indenting JavaScript editor. Use ctrl-i or ctrl-space (depending on which one your browser interferes with) to re-indent the current line. Known issues are...
# R is a free software environment for statistical computing and graphics. It compiles and runs on a wide variety of UNIX platforms, Windows and MacOS. To download R, please choose your preferred CRAN mirror. # If you have questions about R like how to do
CodePress is web-based source code editor with syntax highlighting written in JavaScript that colors text in real time while it's being typed in the browser.
Mantra is a new programming language being defined by Terence Parr at the University of San Francisco. The language will evolve as it is implemented and, thus, this document should be viewed as a draft proposal. August 30, 2007. Mantra is meant as a rese
Hop is a new higher-order language designed for programming interactive web applications such as web agendas, web galleries, music players, etc. It exposes a programming model based on two computation levels. The first one is in charge of executing the lo
Behold, behold, Rails 2.0 is almost here. But before we can slap on the final stamp, we’re going to pass through a couple of trial release phases. The first is this preview release, which allows you to sample the goodies in their almost finished state.
Note that I made a grave error of thinking before writing this article: I forgot the copy-on-write page sharing of modern Unices. I added two paragraphs to this article that should clarify the point. Thanks for your comment, Alex.
Libtextcat is a library with functions that implement the classification technique described in Cavnar & Trenkle, "N-Gram-Based Text Categorization" [1]. It was primarily developed for language guessing, a task on which it is known to perform with near-pe
A red-black tree is a type of self-balancing binary search tree, a data structure used in computer science, typically used to implement associative arrays. The original structure was invented in 1972 by Rudolf Bayer who called them "symmetric binary B-tre
Get the entire book! Introduction to Neural Networks with Java Programming Neural Networks in Java will show the intermediate to advanced Java programmer how to create neural networks. This book attempts to teach neural network programming through two mec
This talk is a polemic that distills the pessimistic side of my feelings about systems research these days. I won't talk much about the optimistic side, since lots of others can do that for me; everyone's excited about the computer industry. I may therefo
Clojure is a dynamic programming language that targets the Java Virtual Machine. It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure
Passadinha rápida só pra deixar registrado uma dica pra quem for instalar (ou tentar) o novo serviço de internet móvel da Claro com 3g no Mac OS. Eu assinei o serviço de 1mps e recebi “de cortesia” o modem USB Huawei E226. No manual que acompanha
This sounds bad, but it needs to happen if Java is to ultimately stay in the mainstream. That is, if feature accretion hasn't already irreparably damaged the language
A computer simulation, a computer model or a computational model is a computer program, or network of computers, that attempts to simulate an abstract model of a particular system. Computer simulations have become a useful part of mathematical modelling o
Genetic programming is a relatively new form of artificial intelligence, and is based on the ideas of Darwinian evolution and genetics. The foremost work in genetic programming is John Koza's Genetic Programming, which describes a set of LISP routines whi
I'd like to share two nifty language implementation tricks I've come across recently. The first is about doing allocation safely and quickly. It's helpful to have read Atomic heap transactions and fine-grain interrupts as background, but the first paragra
Consistent with many Linux commands and drivers, there is a manual page with detailed information available for this driver. This is a good place to start to manually set up and trouble shoot the driver - the Option "MonitorLayout" is a good candidate to
You've built a vibrant community of Family Guy enthusiasts. The SVD recommendation algorithm took your site to the next level by allowing you to leverage the implicit knowledge of your community. But now you're ready for the next iteration - you are about
One of the aspects we have to work around building and improving a dynamic language implementation on the Java Virtual Machine is the way the JVM loads and executes bytecode. In order for JRuby to take advantage of the Hotspot just-in-time (JIT) compiler,
PWNtcha stands for "Pretend We’re Not a Turing Computer but a Human Antagonist", as well as PWN capTCHAs. This project’s goal is to demonstrate the inefficiency of many captcha implementations.
To even try to keep pace with the rapid evolution of game development, you need a strong foundation in core programming techniques-not a hefty volume on one narrow topic or one that devotes itself to API-specific implementations. Finally, there's a guid
Several years ago, a client asked me to come up with a prototype for a real-money online poker bot. That's right: a piece of software you park on your computer while it goes out to a site like PokerStars or Full Tilt and plays no-limit Holdem for you
In an earlier post Over on the Twisted blog, Duncan McGreggor has asked us to expand a bit on where we think Twisted may be lacking in it’s support for concurrency. I’m afraid this has turned into a meandering essay, since I needed to reference so muc
Myghty is a Python based templating framework originally based on HTML::Mason, the enterprise-level framework used by Amazon.com, del.icio.us and Salon.com,
Once again a post aimed at the PHP community, not so much of a rant but more of something I’ve seen done horribly wrong in a lot of PHP code recently, first let me take a few examples from a couple of well known PHP frameworks and libraries:
Today we'll be writing a simple todo list application. My goal is not to show you the finer points of todo lists, but rather to show you how to properly set up a webpy project for small to medium sized applications.
Want to write shorter, cleaner code? Have an unfortunate situation where you need to fit as much as you can in one expression? Prefer a quick dose of hacks to spending the rest of your life reading the docs? You've come to the right place.
The process of writing large parallel programs is complicated by the need to specify both the parallel behaviour of the program and the algorithm that is to be used to compute its result.
In analyzing my data I wanted to classify it with a naive Bayesian classifier. I wasn't sure I had the math right, so I wrote a tiny abstract classifier to test with. The code is pretty cool:
The Django REST interface makes it easy to offer private and public APIs for existing Django models. New generic views simplify data retrieval and modification in a resource-centric architecture
Getting started with Jersey is very easy. First, download the latest distribution of Jersey and unzip it. If you are using NetBeans IDE 6.x, you do not need to download the Jersey distribution. Instead, install the RESTful Web Services plugin from the Plu
"RRDtool is the Open Source industry standard, high performance data logging and graphing system for time series data. It stores the data in a very compact way that will not expand over time, and it can create beautiful graphs."
Michael Abrash's classic Graphics Programming Black Book is a compilation of Michael's writings on assembly language and graphics programming (including from his "Graphics Programming" column in Dr. Dobb's Journal
Here's a realtively simple way to implement data versioning in a database, in a way that should be scalable as well. It only needs a couple of support tables and a single function and can apply versioning across multiple data sets concurrently.
One thing I really love with the Python programming language is its incredible extensibility. Here’s a list of 50 awesome modules for Python, covering almost all needs: Databases, GUIs, Images, Sound, OS interaction, Web, and more.
So, a while ago, I’ve decided to code a library to plot some information I had. The idea was to create simple graphics in a way they would be easy to create, beautiful and good to present to people with no or few backgrounds on math and computers.
If you are starting with Neural Networks you should check out my online book on the subject. It contains over 300 pages of information on Neural Network Programming in Java. You can access it here.
Fast Artificial Neural Network Library is a free open source neural network library, which implements multilayer artificial neural networks in C with support for both fully connected and sparsely connected networks. Cross-platform execution
This is a collection of bibliographies of scientific literature in computer science from various sources, covering most aspects of computer science. The bibliographies are updated weekly from their original locations such that you'll always find the most recent versions here.