KBD

Keith Devens .com

Saturday, May 17, 2008 Flag waving
Of course, that's just my opinion. I could be wrong. – Dennis Miller

Tag: Computer science

Parents:

Children:

Daily link icon Tuesday, August 1, 2006

  1. Joel Spolsky: Can Your Programming Language Do This?

       (0) Tags: [MapReduce]

Daily link icon Friday, July 7, 2006

  1. Lambda the Ultimate: Failure-oblivious computing.

       (0) Tags: [Computer science]

Daily link icon Thursday, June 8, 2006

  1. Official Google Research Blog: Nearly All Binary Searches and Mergesorts are Broken (via Ned Batchelder). When you look at what the bug is it's not a big shock at all. More of a "duh" (not that I likely would have avoided the bug in my own code...). But it's something to watch out for.

    Update: LtU is on it.

       (0) Tags: [Computer science]

Daily link icon Tuesday, June 6, 2006

  1. Unifying events and threads, in Haskell (via Adam).

       (0) Tags: [Computer science]

Daily link icon Thursday, May 18, 2006

  1. Otter: An Automated Deduction System.

       (0) Tags: [Computer science]

Daily link icon Sunday, March 12, 2006

  1. Better Scaling through application level threading (via Steve Dekorte). It turns out that SQL Server uses a cooperative threading model internally to achieve higher performance than they could using the native OS scheduler. This is what languages like Smalltalk and Io do as well.

       (0) Tags: [Computer science, IO Language, Smalltalk]

Daily link icon Sunday, March 5, 2006

  1. An introduction to Category Theory: When is one thing equal to some other thing? (PDF), by Barry Mazur (via LtU). To read.

       (0) Tags: [Computer science, Mathematics, Philosophy, To Read]

Daily link icon Friday, March 3, 2006

Transmuter Programming Language

Transmuter Programming Language (via PLNews):

The Transmuter Programming Language, or Trans for short, is a new dynamic programming language that has been under careful design and development for several years, and is currently in an initial testing phase. Trans is a biologically inspired language, providing a framework for experimenting with naturally evolving systems of objects over the net, and for exploring new ideas about recombinant software, code morphing, and evolutionary programming in general. The Trans model is an ambitious attempt to fuse modern programming language paradigms with novel evolutionary programming techniques. It is a modern object-oriented dynamic language with a built-in capacity for evolutionary transformation.

The code looks clean, and the source code to Trans is public domain (that's real freedom in software). Plus, it's got a prototype-OO system, and I love prototype OO. I can't comment on the "evolutionary" features as yet, but the threading system looks super easy (though it's not yet documented enough to use).

Daily link icon Thursday, March 2, 2006

  1. James Manning's blog : error CS1501: No overload for method 'Base' takes '0' arguments. Why don't more languages come with 'unified constructors' like Python (and even PHP, now) does? Wouldn't that fix the problem?

       (0) Tags: [C#, OOP, PHP, Python]

Daily link icon Monday, February 27, 2006

  1. The Implementation of Functional Programming Languages. "My 1987 book is now out of print, but it is now available online in its entirety." (Via reddit).

       (0) Tags: [Books, Functional Programming, To Read]

Daily link icon Sunday, February 26, 2006

Alan Kay speaks

Bill Clementson's Blog: The Most Important Idea in Computer Science (via Chris Double).

Favorite quote, from Alan Kay: "Java is the most distressing thing to hit computing since MS-DOS." Note that Kay is one of the inventors of Smalltalk.

Update: Phil Windley - Alan Kay: Is Computer Science as Oxymoron? Phil was at the talk and has lots of notes from it. Worth a read. Via Paul Hammond.

Daily link icon Saturday, February 25, 2006

  1. LtU: Hundreds of Impossibility Results for Distributed Computing.

       (0) Tags: [Distributed Computing, To Read]

Daily link icon Tuesday, February 21, 2006

PHP's 'create_function' function

PHP's create_function function is so cumbersome to use that I'm creating shortcuts for the most common cases. Very often all you want to do is a map and return a particular field out of an associative array. So:

<?php
function mapfield($key$func=null){
    return 
create_function('$a',"return $func(\$a['$key']);");
}
?>

Used as in:

<?php
function tags_join($tags){
    
#given an array of tags give the canonical space separated listing
    
return join(' ',array_unique(array_map(mapfield('Name'), $tags)));
}
?>

Daily link icon Monday, February 20, 2006

  1. MSDN: C#: Create Elegant Code With Anonymous Methods, Iterators, And Partial Classes. C# has generators! To read.

       (0) Tags: [C#, Generators, To Read]
  2. Aspect Orienting .NET Components, by DR. Viji Sarathy Smiley Via Michael. To read.

    Update: To quote Michael, "I would never use that technique. Ever."

    Update: Eric Gunnerson had a post a year and a half ago on Microsoft's "wait and see" attitude towards AOP. Good comments. Having to inherit from ContextBoundObject is unworkable.

       (2) Tags: [.NET, Aspect Oriented Programming]

Daily link icon Monday, February 13, 2006

C++ Reference Guide > The Rise & Fall of Object Orientation

C++ Reference Guide > The Rise & Fall of Object Orientation:

Exceptional C++ Style, by Herb Sutter, contains a systematic analysis of class std::string. Sutter shows that the majority of its member functions can actually be replaced with existing STL algorithms, at least in theory. He also provides plenty of reasons why this approach is better. The four mini-chapters dedicated to this issue are indispensable for anyone who is interested in learning how general purpose libraries should be designed today. It's surprising to see that the original notions of OOP such as inheritance, virtual functions and member functions have become so antiquated and cumbersome in the last 10 years. Undoubtedly, were class std::string to be re-designed from scratch today, it would offer a cleaner, slimmer and more consistent interface

Via Top Ten of Programming Advice to NOT follow, by Kristian Dupont Knudsen, which is somewhat worth a read in its own right. (That link via Keith Gaughan.) I didn't agree with all of it, but I did like this bit:

Oh, and my favourite specialization of the comments advice: keep a history of changes and author info etc. in the top of each file.
I've never actually heard anyone say that you should do this but I have seen it so many times that there must be people out there recommending it. Why on earth you would clutter the code with information that so obviously belongs in the version control system is just beyond me.

Daily link icon Wednesday, December 14, 2005

Python's metaclasses

Dev Shed has an excellent introduction to Python's metaclasses (via DPU). I get it now:

  • Python's metaclasses are just normal classes that inherit from type
  • When you instantiate a metaclass the object returned is itself a class
  • To declare that a class has a given metaclass, set the __metaclass__ data member to the metaclass when declaring the class.
  • The metaclass' __init__ method is called when a class that has it as its metaclass is declared (__init__ for metaclasses takes (klass, klass_name, base_classes, dict_of_attributes) as its parameters).

And that's it (according to the article). So, it seems that Python very nearly has a prototype-based object system, but not quite. (And I ❤ prototype-based object systems.) With a prototype-based object system the distinction between metaclasses and classes (heck, and objects) goes away, so it seems to me that you could do the same thing as what Python calls metaclasses simply by overriding a particular object's clone method. Am I wrong?

Daily link icon Thursday, November 17, 2005

  1. First monads in Perl, now monads in Ruby (via Keith Gaughan, via The Farm), both still to read.

       (0) Tags: [Monads, Perl, Programming, Ruby]

Daily link icon Monday, October 17, 2005

  1. Pyro - About:

    Pyro is short for PYthon Remote Objects. It is an advanced and powerful Distributed Object Technology system written entirely in Python, that is designed to be very easy to use. Never worry about writing network communication code again, when using Pyro you just write your Python objects like you would normally. With only a few lines of extra code, Pyro takes care of the network communication between your objects once you split them over different machines on the network. All the gory socket programming details are taken care of, you just call a method on a remote object as if it were a local object!

    via Why I ditched XMLRPC in favor of Pyro.

       (3) Tags: [Programming, Pyro, Python]

Daily link icon Wednesday, April 13, 2005

  1. Sam Ruby: Continuations for Curmudgeons.

       (0) Tags: [Continuations, Programming]

Daily link icon Thursday, March 24, 2005

  1. ongoing · Mind Expansion by Mikael:

    Anyhow, I’d always vaguely understood continuations and knew that smart people thought they were great, but I looked at the code from his essay Continuations on the Web and thought “I can’t believe that does what he says”, but it turns out that OS X comes with Ruby and yes, it does what he says. But I had to spend a long time looking at it to see why. Will this kind of idiom ever enter the mainstream? I’m not sure, but internalizing it will make you a little smarter.

       (5) Tags: [Continuations, Programming, Ruby]

Daily link icon Thursday, October 21, 2004

  1. Google Labs Publications: MapReduce:

    MapReduce is a programming model and an associated implementation for processing and generating large data sets... Programs written in this functional style are automatically parallelized and executed on a large cluster of commodity machines. The run-time system takes care of the details of partitioning the input data, scheduling the program's execution across a set of machines, handling machine failures, and managing the required inter-machine communication. This allows programmers without any experience with parallel and distributed systems to easily utilize the resources of a large distributed system.

    Via Adam and Ned.

       (0) Tags: [Google, MapReduce]
May 2008
SunMonTueWedThuFriSat
 123
45678910
11121314151617
18192021222324
25262728293031



RSS feed RSS feed for Keith's Weblog
Atom feed Atom feed for Keith's Weblog
Weblog archive
Recent comments
  on 2 posts

Recent comments XML

new⇒Maps of Iraq

my husband is in Scania too..he​says it's not too bad..he's been at​worse...

Cristy: May 16, 3:54pm

"IMDB for music"

IMDB for Music? It looks to be a​couple of years old...​http://MusicTell.co...

Ken Empie: May 14, 9:57pm

Generated in about 0.189s.

(Used 12 db queries)