Friday, May 01, 2009

From http://www.cs.auckland.ac.nz/CDMTCS/chaitin/lowell.html

The computer pioneer Turing was inspired by these questions. Turing was trying to settle a question of Hilbert's having to do with the philosophy of mathematics, when he invented a thing called the Turing machine, which is a mathematical model of a toy computer. Turing did this before there were any real computers, and then he went on to actually build computers. The first computers in England were built by Turing.

And von Neumann, who was instrumental in encouraging the creation of computers as a technology in the United States, (unfortunately as part of a war effort, as part of the effort to build the atom bomb), he knew Turing's work very well. I learned of Turing by reading von Neumann talking about the importance of Turing's work.

Thursday, October 23, 2008

C# Library for Amazon EC2

Docs:Amazon.EC2 Namespace


About this Library

  • Based on the 2008-08-08 API version.

What's New?

  • 2008-10-23:
    • Support for Windows
  • 2008-08-20:
    • Initial release, support for Amazon Elastic Block Store

Prerequisites

Labels: , , ,

DM's Esoteric Programming Languages
Including the Esoteric Languages :
  • BIT - a language that treats all data like C treats strings.
  • Whenever - a language with no sense of urgency.
  • ZOMBIE - a language designed for evil necromancers.

and Algorithms
  • Bogobogosort - a sorting algorithm based on the popular bogosort.
  • Demon Sort - a sorting algorithm that violates the second law of thermodynamics.
  • Intelligent Design Sort - a sorting algorithm that rejects the idea that lists can "evolve" to a sorted state.

Labels:

Cooperative Linux
is the first working free and open source method for optimally running Linux on Microsoft Windows natively. More generally, Cooperative Linux (short-named coLinux) is a port of the Linux kernel that allows it to run cooperatively alongside another operating system on a single machine. For instance, it allows one to freely run Linux on Windows 2000/XP, without using a commercial PC virtualization software such as VMware, in a way which is much more optimal than using any general purpose PC virtualization software

Labels:

Real World Haskell
by Bryan O'Sullivan, Don Stewart, and John Goerzen

Why functional programming? Why Haskell?
1. Getting started
2. Types and functions
3. Defining types, streamlining functions
4. Functional programming
5. Writing a library: working with JSON data



From Sententia cdsmithus

Ray Tracing in Haskell
Rather than just listing off language constructs, I wanted to motivate the whole thing with an actual application. So that’s how I ended up spending yesterday afternoon writing a ray tracer in Haskell. I’m certainly not the first to do so, nor the best, but I am writing this blog post to explain the process I went through. I’ll try making this a literate Haskell post, so you can copy and paste it into a source file (extension .lhs) and run it.

Labels:

Thursday, October 16, 2008

Tiny C Compiler (tcc or TinyCC) related files

Here’s information specific to the Tiny C Compiler (tcc or TinyCC), originally developed by Fabrice Bellard. I used this small compiler for a lot of my work. tcc is Free-libre / open source software, so it can be reviewed and modified by anyone, and its small size also had many advantages for me.


Units of Measure in F#

As recently announced in the September 2008 F# CTP (Community Technical Preview), the F# programming language now has full support for static checking and inference of units-of-measure. In this series of articles I'll gently introduce the feature.



The Tokeneer Project
In order to demonstrate that developing highly secure systems to the level of rigor required by the higher assurance levels of the Common Criteria is possible, the NSA (National Security Agency) asked Praxis High Integrity Systems to undertake a research project to develop part of an existing secure system (the Tokeneer System) in accordance with Praxis’ Correctness by Construction development process.

Labels: , , ,

Monday, October 06, 2008

http://bluff.jcoglan.com/

"Bluff is a JavaScript port of the Gruff graphing library for Ruby. It is designed to support all the features of Gruff with minimal dependencies; the only third-party scripts you need to run it are a copy of JS.Class (about 2kb gzipped) and a copy of Google’s ExCanvas to support canvas in Internet Explorer. Both these scripts are supplied with the Bluff download. Bluff itself is around 8kb gzipped."


SaaS Industry map. From Laird OnDemand:

"Below is the visual map as promised. You will find a larger version hosted here. An explanation of each category and a full clickable URL list of the solutions is offered below the map."





Physics for Future Presidents: The Podcasts
http://entertainment.timesonline.co.uk/tol/arts_and_entertainment/books/article4772369.ece

"The lectures were recorded for podcast, click on the links below to join Muller’s students on a freewheeling tour though some of the most pressing issues in modern science, pitched perfectly at the intelligent layman rather than the physics graduate. Audio quality can be variable, but the ideas never fail to enthrall"




Original Podcasts at http://webcast.berkeley.edu/course_details.php?seriesid=1906978515

Labels: , , ,

Sunday, September 28, 2008

Monte Carlo Simulations

From http://omlc.ogi.edu/software/mc/

"Despite appearances to the contrary (e.g., MCML), Monte Carlo code does not need to be long and complicated. To emphasize this idea of the inherent simplicity of the Monte Carlo approach, I have written three short programs. Enjoy!"

Labels: , ,

PHPDig.net - php - eval

From http://www.phpdig.net/ref/rn39re741.html :

eval() is used to evaluate a string as PHP code. It's most often used to execute PHP code that's built at runtime or to get around some of the limitations in the PHP parser. Use of eval() can be somewhat tricky at times. Novice programmers have suggested that evil() would be a more appropriate name for the function.

eval() behaves as if the string being evaluated was a normal block of code in the same scope as the call to eval() . The best way to explain this is by using a few simple code examples. In PHP 4, there is an exception to this rule. A return() statement can be used to stop parsing of the evaluated string. The value after the return() statement will be returned by the eval() function. The following scripts should be equivalent:

Labels: ,

RSA Encryption in .NET -- Demystified!

From http://www.eggheadcafe.com/articles/20020630.asp

The "KEY" to RSA Encryption

Whenever you create a new default constructor instance of the RSACryptoServiceProviderclass, it automatically creates a new set of public / private key information, ready to use. However, if you want to re-use previously created keys, you can do this by initializing the class with a populated CspParameters object.

For example [VB.NET]:

Dim cspParam as CspParameters = new CspParameters()
cspParam.Flags = CspProviderFlags.UseMachineKeyStore
Dim RSA As System.Security.Cryptography.RSACryptoServiceProvider
= New System.Security.Cryptography.RSACryptoServiceProvider(cspParam)

Labels: , ,

Erlang Mimeparse

From http://code.google.com/p/mimeparse/ :

"This module provides basic functions for handling mime-types. It can handle matching mime-types against a list of media-ranges. See section 14.1 of the HTTP specification RFC 2616 for a complete explanation.

Contents

Labels: , ,

Generating Keys for Encryption and Decryption

From http://msdn.microsoft.com/en-us/library/5e9ft273(VS.80).aspx :

".NET Framework Developer's Guide
Generating Keys for Encryption and Decryption

Creating and managing keys is an important part of the cryptographic process. Symmetric algorithms require the creation of a key and an initialization vector (IV) that must be kept secret from anyone who should not decrypt your data. Asymmetric algorithms require the creation of a public key and a private key. The public key can be made public to anyone, while the private key must known only by the party who will decrypt the data encrypted with the public key. This section describes how to generate and manage keys for both symmetric and asymmetric algorithms."

Labels: , ,

.net Crypto

From http://msdn.microsoft.com/en-us/library/tswxhw92(VS.80).aspx

"
.NET Framework Developer's Guide
How to: Store Asymmetric Keys in a Key Container

Asymmetric private keys should never be stored verbatim or in plain text on the local computer. If you need to store a private key, you should use a key container. For more information on key containers, see the CryptoAPI section in the Platform SDK documentation at http://msdn.microsoft.com.
"

Labels: , ,

Mime Types



From : http://www.xml.com/pub/a/2005/06/08/restful.html

"One of the benefits of using HTTP correctly is that we can dispatch on a whole range of things. To make the discussion more concrete, let's look at an example HTTP request:

GET / HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: Mozilla/5.0 (...) Gecko/20050511 Firefox/1.0.4
Accept: text/xml, application/xml, application/xhtml+xml, text/html;q=0.9,
text/plain;q=0.8, image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

There are three items of interest here. First, the HTTP request method is GET. Second, the URI is carried in two locations. The path and query parameters are on the first line of the request. The remainder of the URI, the domain name of the server, is carried in the Host header. Third, the media type is carried in the Accept header because this is a GET request. For other POST or PUT requests, the Content-Type header in the request carries the media type of the entity body."

Labels: ,