Archive for December 2008

Article: A memcached implementation in JGroups

A memcached implementation in JGroups by Bela Ban, JBoss

Memcached is a widely used cache, which can be distributed across a number of hosts. It is is a hashmap storing key/value pairs. Its main methods are set(K,V) which adds a key/value pair, get(K) which returns a value for a previously inserted key and delete(K) which removes a key/value pair.

PartitionedHashMap is an implementation of memcached on top of JGroups, written completely in Java. It has a couple of advantages over memcached

Comments

Article: Introducing Java SE 6 update 10

Introducing Java SE 6 update 10 from sun.com

Java SE 6u10 was created as a response to these challenges

* Difficult to detect JREs, especially from a web browser
* Difficult to automatically install new JREs
* Large download size
* Poor cold start performance
* Little overlap between applets and Web Start programs

Comments

Article: A Web Developer’s Responsibility

A Web Developer's Responsibility by John Resig

Browser bugs are annoying, frustrating, and make your job incredibly difficult.

Because browser bugs are so frustrating and such a burden on top of normal development it should be the responsibility of every web developer to make sure that the browsers they develop for are able to find and fix their bugs. By taking responsibility for the bugs that you find – and to not assume that "someone else will find it" – will accelerate the rate at which browsers can improve.

Comments

Article: Understanding Ruby Blocks, Procs and Lambdas

Understanding Ruby Blocks, Procs and Lambdas by Robert Sosinski

Blocks, Procs and lambdas (referred to as closures in Computer Science) are one of the most powerful aspects of Ruby, and also one of the most misunderstood. This is probably because Ruby handles closures in a rather unique way. Making things more complicated is that Ruby has four different ways of using closures, each of which is a tad bit different, and sometimes nonsensical.

Comments

Article: Benchmarking and Refactoring

Benchmarking and Refactoring by Pat Eyler

This blog post is pulled from the Profiling and Optimizing Ruby tutorial I wrote for IBM DeveloperWorks a couple of years ago.

Comments

Blog: Merb Will Be Merged Into Rails 3.0

Merb Will Be Merged Into Rails 3.0 from infoQ.com

Big news in the world of Ruby web frameworks: Merb and Rails will be merged.

Comments

Article: Rails Worst Practices: 13 Coding Nightmares You Should Avoid

Rails Worst Practices: 13 Coding Nightmares You Should Avoid by Josh Symonds

This is not a post about best practices. This is about the worst of the worst, the things you should never, ever do, the stuff of coding nightmares. So before we start, make special note: this isn't a blog post to make your code better. This is triage. We're only trying to stop things from getting worse.

Comments

Article: Building a iPhone web app in under 50 lines with Sinatra and iUI

Building a iPhone web app in under 50 lines with Sinatra and iUI by the Devver blog

Sinatra is a really awesome minimalist web framework. It lets you build web applications with just a few lines of code. iUI is a collection of JavaScript, CSS, and images that lets you easily make your web sites look great on the iPhone. Using these two tools, it’s really easy to build simple iPhone apps.

Comments

Article: An introduction to git-svn for Subversion/SVK users and deserters

An introduction to git-svn for Subversion/SVK users and deserters from utsl.gen.nz

This article is aimed at people who want to contribute to projects which are using Subversion as their code-wiki. It is particularly targetted at SVK users, who are already used to a work-flow that involves disconnected operation, though this is a tiny subset of the workflows supported by the git suite. Subversion users can skip SVK and move straight onto git-svn with this tutorial.

Comments

Blog: MySQL Conf – Memcached Internals

MySQL Conf – Memcached Internals by igvita.com

1. Don't think row-level (database) caching, think complex objects
2. Don't run memcached on your database server, give your database all the memory it can get
3. Don't obsess about TCP latency – localhost TCP/IP is optimized down to an in-memory copy
4. Think multi-get – run things in parallel whenever you can
5. Not all memcached client libraries are made equal, do some research on yours – hint, use Brians.

Comments