background preloader

10 Technical Papers Every Programmer Should Read (At Least Twice)

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. 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 An Axiomatic Basis for Computer Programming (link to paper) by C. Taken to mean: by John McCarthy

100 Exquisite Adjectives By Mark Nichol Adjectives — descriptive words that modify nouns — often come under fire for their cluttering quality, but often it’s quality, not quantity, that is the issue. Plenty of tired adjectives are available to spoil a good sentence, but when you find just the right word for the job, enrichment ensues. Practice precision when you select words. Here’s a list of adjectives: Subscribe to Receive our Articles and Exercises via Email You will improve your English in only 5 minutes per day, guaranteed! 21 Responses to “100 Exquisite Adjectives” Rebecca Fantastic list!

Crack/Keygen Sites That Are Safe To Use Blindly searching the web for cracks & keygens is about as smart as using Limewire to search for antivirus software - something not well-advised. Undoubtedly and unfortunately, the number of crack sites with overtones of a malicious agenda heavily outweigh sites that just want to serve up the honest goods. Having said that, there actually are quite a few creditable ‘crack’ sites that won’t try to bombard you with full-screen popup ads, or commandeer your computer into a spam-loving Kraken or Srizbi Botnet army. We’ve done the hard work for you, and present a list of “clean” crack sites for all the latest warez. Be aware that the site reviews herein only include information about each site, not the contents of the ‘cracks’ themselves. Our Recommendation: Due to security flaws and exploits, avoid using Internet Explorer when browsing potentially harmful websites (such as any of these on the list) - use Firefox instead. Recommended (Clean) Crack Sites Malware / Spyware ? www.serialkey.net

Complexity Cases in Wolfram Posted by An algorithm is, in essence, a procedure given by a finite description that solves some computational problem. The field of computational complexity deals with questions of the efficiency of algorithms, i.e. “For a computational problem X, how many steps does the best algorithm perform in solving X?” You might think that questions in this field would be confined to the realm of computer science, except for the fact that computational complexity theory contains the mathematical problem of the century! It is generally accepted that the foundations of modern computer science were laid in the 1930s, for it was in this decade that Turing machines, recursive functions, λ-calculus (the inspiration for LISP), Markov algorithms, and many other forms of computation were invented. Computational complexity is a measure of the resources (e.g. time, space, etc.) that are required to compute a query as a function of input size. In a nutshell, the P vs.

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? 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. In the mid-1980s, most of the open system file systems came as part of a standard Unix release from USL. Metadata performance Recovery performance Small block performance Large block performance Storage management The keyword here is scalability. Around 1990, Veritas released VxFS, the first commercial UNIX file system.

The Basics of C Programming" The previous discussion becomes a little clearer if you understand how memory addresses work in a computer's hardware. If you have not read it already, now would be a good time to read How Bits and Bytes Work to fully understand bits, bytes and words. All computers have memory, also known as RAM (random access memory). For example, your computer might have 16 or 32 or 64 megabytes of RAM installed right now. float f; This statement says, "Declare a location named f that can hold one floating point value." While you think of the variable f, the computer thinks of a specific address in memory (for example, 248,440). f = 3.14; The compiler might translate that into, "Load the value 3.14 into memory location 248,440." There are, by the way, several interesting side effects to the way your computer treats memory. int i, s[4], t[4], u=0; for (i=0; i<=4; i++) { s[i] = i; t[i] =i; } printf("s:t\n"); for (i=0; i<=4; i++) printf("%d:%d\n", s[i], t[i]); printf("u = %d\n", u); s[1000000] = 5;

This Pulsing Earth : Krulwich Wonders... It's breathing, he thought. "All of a sudden I see a thing with a heartbeat." John Nelson is a designer, well known for tracing complex weather patterns or cultural information on maps, so considering what he usually does, this was easy. NASA's Visible Earth team publishes pictures of our planet every month of the year, so John thought, why not stitch them together, and see what the seasons look like from outer space? So he stitched, and then looked. "I was surprised," he writes on his UX.Blog. After working a few hours on getting the cartographic mumbo jumbo out of the way (projection, coloration, atmospheric haze, and stuff), I first got to see the frames flicker in front of me, and I just stared at it as it looped over and over again. These images are gripping. Snowball Earth There have been times on Earth when the white didn't go. And it's gone the other way too. The Dance Of Whiteness And it is exactly this dance, the dance of whiteness, that is now, in more and more places, at risk.

The Tao Of Programming Translated by Geoffrey James Transcribed by Duke Hillard Transmitted by Anupam Trivedi, Sajitha Tampi, and Meghshyam Jagannath Re-html-ized and edited by Kragen Sittler Last modified 1996-04-10 or earlier Table of Contents Book 1 - The Silent Void Thus spake the master programmer: ``When you have learned to snatch the error code from the trap frame, it will be time for you to leave.'' Something mysterious is formed, born in the silent void. If the Tao is great, then the operating system is great. The Tao of Programming flows far away and returns on the wind of morning. The Tao gave birth to machine language. The assembler gave birth to the compiler. Each language has its purpose, however humble. But do not program in COBOL if you can avoid it. In the beginning was the Tao. Programmers that do not comprehend the Tao are always running out of time and space for their programs. How could it be otherwise? The wise programmer is told about Tao and follows it. The highest sounds are hardest to hear.

How We Made GitHub Fast - GitHub 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! 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 This is probably the coolest thing that I know about in SSH.

Related: