Today's Question:  What does your personal desk look like?        GIVE A SHOUT

 ALGORITHM


  Rediscovering the RSync Algorithm

A:Ok, you’re synchronizing this over the web;and what do you use for the synchronization?B: Oh, we implemented the rsync algorithm.A: uhu. And what do you do with really big files?B: The same.A: And you also synchronise folders?B: Yes.A: And how do you do that?B: we iterate over the folder, using the algorithm on every file, recursing over subfolders.A: Can you try 2 things for me? First, a very large file; and second, a large codebase, and see if it holds.IntroductionFirst of all, I am an admirer of the (original) rsync algorithm. (I think) it was a first stab at file synchronization,...

2,078 0       RESYNC ALGORITHM DISCOVERY


  I am a great programmer, but horrible algorithmist

I am a great programmer, but a horrible algorithmist. It is a thought that has been weighing on me heavily recently, and I'd like to gather other developers feelings on the subject as well.I started what can be called my professional development career back in 1999. I was still in middle school, but my father hired me at his software company. My official duty was to make updates to our websites, but I mostly ended up bugging the other developers to help me learn.From there I picked up Perl (somewhat) and then moved to PHP and front end web development where I have stayed comfortably for the l...

3,699 0       PROGRAMMER ALGORITHMIST DIFFFERENCE


  The faster-than-fast Fourier transform

The Fourier transform is one of the most fundamental concepts in the information sciences. It’s a method for representing an irregular signal — such as the voltage fluctuations in the wire that connects an MP3 player to a loudspeaker — as a combination of pure frequencies. It’s universal in signal processing, but it can also be used to compress image and audio files, solve differential equations and price stock options, among other things.The reason the Fourier transform is so prevalent is an algorithm called the fast Fourier transform (FFT), devised in the mid-1960...

2,510 0       FFT FAST FOURIER TRANSFORM MIT COMPRESSION


  Will We Need Teachers Or Algorithms?

Editor’s note: This is Part III of a guest post written by legendary Silicon Valley investor Vinod Khosla, the founder of Khosla Ventures. In Part I, he laid the groundwork by describing how artificial intelligence is a combination of human and computer capabilities In Part II, he discussed how software and mobile technologies can augment and even replace doctors. Now, in Part III, he talks about how technology will sweep through education.In my last post, I argued that software will take over many of the tasks doctors do today. And what of education? ...

2,087 0       TEACHER ALGORITHM DEVELOPMENT


  Why Data Structures Matter

Our experience on Day 0 of JPR11 yielded a nice example of the need to choose an appropriate implementation of an abstract concept. As I mentioned in the previous post, we experimented with Michael Barker’s Scala implementation of Guy Steele’s parallelizable word-splitting algorithm (slides 51-67). Here’s the core of the issue.Given a type-compatible associative operator and sequence of values, we can fold the operator over the sequence to obtain a single accumulated value. For example, because addition of integers is associative, addition can be folded over the sequence:...

2,304 0       IMPORTANCE DATA STRUCTURE JPR


  What the Heck are Algebraic Data Types? ( for Programmers )

This post is meant to be a gentle introduction to Algebraic Data Types. Some of you may be asking why you should learn Algebraic Data Types and how will they change your world?  I am not going to answer that, but suffice it to say that Algebraic Data Types are the underpinning of the type systems to the ML derived languages, Haskell and OCaml included, and their construction and properties allow for the power (and inference) that accompanies these type systems.  They are cropping up in other languages, like Scala, F#, and Clojure.  Well, here are my 2 cents.I wrote this blog pos...

3,215 0       PROGRAMMER ALGEBRAIC DATA TYPE SET OPERATOR


  Build your own internet search engine - Part 2

After having started to build my own internet search engine as described in a previous blog post, I now have read some papers and books about web search engine architecture and information retrieval to complete my hobby project. Here is a list of papers and books that I highly recommend to anybody who is interested in this topic:1. Google: data structures and algorithms by Petteri Huuhka2. The Anatomy of a Large-Scale Hypertextual Web Search Engine by the Google founders Sergey Brin and Lawrence Page3. Introduction to Information Retrieval by Christopher D. M...

3,391 0       DATABASE SEARCH ENGINE PAPER DATA STRUCTURE


  How Integers Should Work (In Systems Programming Languages)

My last post outlined some of the possibilities for integer semantics in programming languages, and asked which option was correct. This post contains my answers. Just to be clear: I want practical solutions, but I’m not very interested by historical issues or backwards compatibility with any existing language, and particularly not with C and C++.We’ll start with:Premise 1: Operations on default integer types return the mathematically correct result or else trap.This is the same premise that as-if infinitely ranged begins with, but we’ll perhaps end up with some different ...

2,119 0       ALGORITHM NUMBER SYSTEM EMBEDDED SYSTEM