background preloader

Articles

Facebook Twitter

Ecstortive - The key value store everyone ignored (Postgresql) - Vimperator. Yes I know you are really happy with your “persistent” Key Value store. But did anybody notice hstore that comes along Postgresql. I find Postgresql to be a really great RDBMS that has been ignored all the time. It even has some great publisher/subscriber system as well (or LISTEN/NOTIFY in terms of Postgresql) that a lot of people may have implement using Redis, RabbitMQ etc.

For people who have not lived anything other than MySQL. I would simply ask them to try out Postgres. Instead of looking at benchmarks, I will be focusing on a key value store that is ACID compliant for real! Lets setup our system first. CREATE EXTENSION hstore;SELECT 'foo=>bar'::hstore; If everything goes well you should be able to see table output. CREATE TABLE my_store( id character varying(1024) NOT NULL, doc hstore, CONSTRAINT my_store_pkey PRIMARY KEY (id))WITH ( OIDS=FALSE);CREATE INDEX my_store_doc_idx_gist ON my_store USING gist (doc); It already sounds tasty! This is not it! Elegant Coding: Eleven Equations True Computer Science Geeks Should (at Least Pretend to) Know - Vimperator. This idea is a complete rip off an article that appeared in Wired a little while ago and it got me thinking what would my list for Computer Science look like?

Plus I thought it might be a fun post and unlike the Wired list this one goes to eleven. So here they are in no particular order: Binomial Coefficient The Binomial Coefficient equation generates Pascal’s Triangle and gives you the coefficients for the Binomial Theorem these ideas are often attributed to Pascal but in fact they have been known in part for over a millennia. As I mentioned that this list is no particular order and I don’t wish to play favorites but if there is one equation here that you should really consider learning and committing to memory this is it. Demorgan’s Laws Logical form: Set Form: Eigenvector and Eigenvalue Pumping Lemma for Regular Languages No Comp Sci list would be complete with at least one formula from either Formal Language Theory or Automata Theory.

Information Entropy Bayes' Theorem Natural Join O(n) Abstract Algebra presented in a non-intimidating way (esp. for developers) - Vimperator. Hi. I think math is really cool, but, most people (sadly) don't think so. This includes many programmers who in fact enjoy many of the same things that mathematicians do, but, are more practical for most of the time. I'll show you why abstract algebra (in particular, group theory) is really cool, and why you don't have to be a freaking genius to get it. Firstly, in order to understand most of this, you'll need to understand a tiny bit of Set theory, and to save time, I'll just refer you to wikipedia for that one (you just need to understand basic unions and intersections).

Let's begin with a simple definition, of a group (note: for hardcore types, this isn't fully rigorous because I haven't defined what an operation is, but, you get the idea). A group is defined: A set (usually called S) with an operation attached (we call the operation *), so, if G is a group,G = <S, *> 2) Closure is one property that all groups must have in order for them to be a group.

For all x \epsilon S, x*e = x Yay! Microcaching: Speed your app up 250x with no new code - Fenn's Thoughts - Vimperator. I recently had the opportunity to help some friends out preparing a content site (wordpress) for a fairly hefty traffic hit. It was potentially going to be a big spike (national radio campaign, time sensitive content, etc) and they particularly didn't want it to go down at the critical time. I put together a fairly typical "fast" PHP architecture: nginx, PHP-FPM, APC, front-end app cluster, load balancer, replicated DB, along with all the mess that comes with it - machine images, replicated filesystem, etc, etc.

Additionally, installed/tested the various appropriate Wordpress Super-Hyper Cache Pro Blitzen 2000+ plugins. After much mucking around, I had an awesome complicated, linearly scalable difficult to manage, app cluster that could scale to the stars very easily develop non-obvious bottlenecks. It turns out that you can throw all of this out and replace it with a 23 line nginx config. Oh yeah, and you get a 250x per-node performance increase too. How? Concept Changing Data The Config. Requests: HTTP for Humans — Requests 0.6.2 (dev) documentation. 9 Awesome SSH Tricks. Sorry for the lame title. I was thinking the other day, about how awesome SSH is, and how it's probably one of the most crucial pieces of technology that I use every single day. Here's a list of 10 things that I think are particularly awesome and perhaps a bit off the beaten path. Update: (2011-09-19) There are some user-submitted ssh-tricks on the wiki now!

Please feel free to add your favorites. SSH Config I used SSH regularly for years before I learned about the config file, that you can create at ~/.ssh/config to tell how you want ssh to behave. Consider the following configuration example: Host example.com *.example.net User root Host dev.example.net dev.example.net User shared Port 220 Host test.example.com User root UserKnownHostsFile /dev/null StrictHostKeyChecking no Host t HostName test.example.org Host * Compression yes CompressionLevel 7 Cipher blowfish ServerAliveInterval 600 ControlMaster auto ControlPath /tmp/ssh-%r@%h:%p Control Master/Control Path SSH Keys SSH Agent. -= 10 Technical Papers Every Programmer Should Read (At Least Twice) =- 10 Technical Papers Every Programmer Should Read (At Least Twice) this is the second entry in a series on programmer enrichment Inspired by a fabulous post by Michael Feathers along a similar vein, I’ve composed this post as a sequel to the original.

That is, while I agree almost wholly with Mr. Feather’s1 choices, I tend to think that his choices are design-oriented2 and/or philosophical. All papers are freely available online (i.e. not pay-walled)They are technical (at times highly so)They cover a wide-range of topicsThe form the basis of knowledge that every great programmer should know, and may already Because of these constraints I will have missed some great papers, but for the most part I think this list is solid. A Visionary Flood of Alcohol Fundamental Concepts in Programming Languages (link to paper) by Christopher Strachey Quite possibly the most influential set of lecture notes in the history of computer science. Why Functional Programming Matters (link to paper) by John Hughes.

The Evolution of Stupidity: File Systems. The storage industry continues to make the same mistakes over and over again, and enterprises continue to take vendors' bold statements as facts. Previously, we introduced our two-part series, "The Evolution of Stupidity," explaining how issues seemingly resolved more than 20 years ago are again rearing their heads. Clearly, the more things change, the more they stay the same. This time I ask, why do we continue to believe that the current evolutionary file system path will meet our needs today and in the future and cost nothing?

Let's go back and review a bit of history for free and non-free systems file systems. Time Machine -- Back to the Early 1980s My experiences go back only to the early 1980s, but we have repeated history a few times since then. Why can we not seem to remember history, learn from it or even learn about it? In the mid-1980s, most of the open system file systems came as part of a standard Unix release from USL. The keyword here is scalability. Guess what?