When looking at my own Rails code and that of the community as a whole, I often see places where certain Rails techniques could have been used, but weren't. As much for my own memory as yours, I thought I'd list down some Rails tricks and tips that can ma
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
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:
About "ActionWebService: Web services on Rails" This manual describes Action Web Service, the web services support for Rails. It provides an overview of how the various components fit together, and examples for implementing your own web service APIs for R
In response to internal requirements, market demand and partners' electronic trading needs, the above contributors are collaborating on specifications for defining and building messaging infrastructure that provides developers with a simple and more power
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.
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
A quine is a program that prints its own source code (without any access to it). Typically quines are obscure code that few people can understand, and when run, they print the same obscure code that few people can understand. I've seen a similar trait in
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.
This is the homepage of the Shape Contexts based approach to break Gimpy, the CAPTCHA test used at Yahoo! to screen out bots. Our method can successfully pass that test 92% of the time. See EZ-Gimpy in action at Yahoo! The approach we take uses general pu
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
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
Many software engineers recommend what I call the "procrastination approach" to optimization. Delay optimization as much as possible, and don't do it if you can avoid it. I agree with the basic premise. Optimizing too early or too often is not a good appr
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.
Choosing a Java scripting language: Round two If you are considering hooking a scripting interpreter into your Java application, the hardest part is choosing which one to use By David Kearns, JavaWorld.com, 03/14/05
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
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.
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
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
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
"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."
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
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.
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
Dialogue-Driven Development (d3) is an approach to project management that puts client interaction and communication as the highest priority in a successful project. Dialogue-Driven Development encourages: * Mission statements * Goal planning * Prototypin
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
I get a lot of emails about packing and distributing Rails applications with Tar2RubyScript and RubyScript2Exe. It obviously wasn't easy to come up with the steps that have to be taken to transform a Rails application into a standalone application. Since
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
Following up our article: Top 20 Hackers in Film History and Vibrant's Top 10 Servers in the movies, I felt obligated to dispel some of the notions about programming that these movies endorse. I understand that Hollywood needs to dress things up to make t
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
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
I'd been planning to add full-text search capabilities to FastRI from the beginning, and in Ruby-land "full-text" means Ferret. But I wanted to keep dependencies to a minimum, as FastRI could someday aspire to replace parts of the agonizing ri in the stdl
rcov is a code coverage tool for Ruby. It is commonly used for viewing overall test coverage of target code. It features: * fast execution: 20-300 times faster than previous tools * multiple analysis modes: standard, bogo-profile, "intentional testing", d
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
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,
Esta é a edição online da obra Expressões Regulares - Guia de Consulta Rápida, ISBN 85-7522-011-X publicada em 2001 pela Editora Novatec. O conteúdo integral do guia está aqui disponível gratuitamente para consulta. Siga os tópicos ou use a caixa
Extreme Programming (or XP) is a popular software development process that encourages a return to the days of little or no documentation, Design After First Testing, and Constant Refactoring After Programming. Despite its popularity, not everyone thinks X
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
The first time you try to fill an open position, if you’re like most people, you place some ads, maybe browse around the large online boards, and get a ton of resumes.
The proliferation of modern programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember what language you’re currently using. This guide is offered as a public service to help pro
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
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 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
Apache ActiveMQ is a fast open source JMS 1.1 Message Fabric which supports clustering, peer networks, discovery, TCP, SSL, multicast, persistence, XA and integrates seamlessly into J2EE 1.4 containers, light weight containers and any Java Virtual Machine
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
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
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
Whether you’ve forgotten the name of a function or the property of a cascading style sheet - handy cheat sheets deliver the information you are looking for - immediately. Most cheat sheets are available as .pdf or .png-files, so you can print them and u