The Myth of the Muttering Madman is a project in self-realization.

Monday, March 31, 2008

What is art?

Mathematics -> Music, Engineering -> Fine Arts. Nature. Pleasure. Cause of pleasure. Fine arts. Beauty. Aesthetic. What is pleasure? A nice bath? Critique of Judgement, Immanuel Kant. Mental state <- Beauty -> Pleasure. Patterns and shapes. Remove individuality from beauty -> Form -> Universal judgements.

So, abstraction, no visual relation to worldly things. 1912-1914. Crisis. "Break from beauty". Let's change the definition of art. Modernism. Revolution ala Enlightenment. How is this handled? George Dickey, Arthur Danto, link art to social practice. Historical tradition of making art, link objects like this. Urinal. Marcel Duchamp. Linked his urinal to the art work -> it's a work of art. "Institutional theory". Richard Wollheim. Do we have reasons? Or do we just have a collection of objects. "Married person" analogy. Perhaps refuted institutional theory.

Tracey Emin. Damien Hurst. "I am an artist. Therefore this is a work of art". Silly!

Relative merits of art. Do we need convincing art? How do we compare it?



I have a little over 2000 Saturday afternoons left in my life. What to do with them?

All ideas courtesy of Philosophy Bites by Nigel Warburton.

Thursday, March 27, 2008

"On the Sufferings of the World"

More Schopenhauer goodness:

Accordingly, the sole thing that reconciles me to the Old Testament is the story of the Fall. In my eyes, it is the only metaphysical truth in that book, even though it appears in the form of an allegory. There seems to me no better explanation of our existence than that it is the result of some false step, some sin of which we are paying the penalty.
Don't even get me started on his essay on Women (with a capital W).

Very funny guy.

Tuesday, March 25, 2008

Noise

Hilarious rant on "noise" from Schopenhauer's "Studies in Pessimism":

There is something even more disgraceful than what I have just mentioned. Often enough you may see a carter walking along the street, quite alone, without any horses, and still cracking away incessantly; so accustomed has the wretch become to it in consequence of the unwarrantable toleration of this practice. A man's body and the needs of his body are now everywhere treated with a tender indulgence. Is the thinking mind then, to be the only thing that is never to obtain the slightest measure of consideration or protection, to say nothing of respect? Carters, porters, messengers--these are the beasts of burden amongst mankind; by all means let them be treated justly, fairly, indulgently, and with forethought; but they must not be permitted to stand in the way of the higher endeavors of humanity by wantonly making a noise. How many great and splendid thoughts, I should like to know, have been lost to the world by the crack of a whip? If I had the upper hand, I should soon produce in the heads of these people an indissoluble association of ideas between cracking a whip and getting a whipping.

Monday, March 24, 2008

Hunky Jesus competition

From the Hunky Jesus competition:

Catholics have labelled the annual pageant blasphemous, considering that previous entrants have included "old school Jesus", "surfer Jesus" and "zombie Jesus", an irreverent take on the Easter message of Christ rising from the dead.

But the Sisters of Perpetual Indulgence insist the contest is all part of their mission to "promote universal joy and expiate stigmatic guilt".

Friday, March 21, 2008

Neurosis interview

Is this insanity?



Thanks to Fisher for putting me on to these guys. I can't believe I haven't found them before!

Thursday, March 20, 2008

Isobel Campbell

Isobel Campbell restores my faith in all that is twee. No really, she's a kickarse artist. Check her out!

Saturday, March 15, 2008

Veal

I point you to the wikipedia page on the topic of veal, and in particular the juxtaposition of these two images:




Thank you.

Mathematical induction is a form of deductive reasoning.

Numenta and Jeff Hawkins

Numenta looks interesting. Picked up on this guy on a TED talk called Brain science is about to fundamentally change computing. Pretty interesting stuff. I wonder if modeling the neocortex so simply is going to work. Watched another interesting video on MIT World called Can a New Theory of the Neocortex Lead to Truly Intelligent Machines?. Excellent talk.

I have all sorts of questions about the validity of assuming that science is complete enough to synthesise intelligence.

Monday, March 10, 2008

Geeks can't send files?

10:06
Michael
I'll try sending you a file

10:07
adrian
ok

10:07
Michael
Oh no, you have to be using gtalk as well.

10:07
adrian
yeah

10:07
Michael
That's fucked.

10:07
adrian
thought so
yeah
bugger

10:08
Michael
Well, back to base64 encoding

10:08
adrian
hah
awesome
bring it on

10:08
Michael
Hang on - I'll just find an encoder
Can't be stuffed writing one.
Can't find a good one - I'll just slap a quick app together.
Hang on, found one
Ah, this piece of shit converter is no good.

10:20
adrian
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEP
ERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4e
Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAGrAoADASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3iMGr
cUWRUVvHmtGKPAya6JSsZpFXy3FNxJn2q/gE/dp6wh+cVPMOxnCNn4pfIYdBWtHbCnyRKEzS5tRW
MdIzWhbQE1HuTfgLVuJiBQ2wLMdsuP60r2QPShJePSpo5jUlWKhtZEpRHIK1Y2V1pTCp6UXFYy0L
irMExHXpTpIaryIRTEaKSg0Fh0NZ6SEVJ5lK1xlzj/ZqMmoRJxQ7mmlYQ9gtNCimb/WnIwNMCZAB
UoIFQgipV6UmA4NUgkGKquaYHOaVrjL4kBNI6g1FFgipwBSYyuU5pGFWyoxUUiAdKLhYg2j1owO1
OIqNzTFawjjAqpJMd+Ksu+fpUD7TzTEWrZxjFW1ANZkTEYq/FJUspFgA4pARQkgxg0w4zkc1ICSC
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

could you decode that ok?

10:24
Michael
I'm just going to write a quick java app using the sun decoder.
What sort of file was that last one?

10:25
adrian
jpg

10:25
Michael
Cool thanks.

10:25
adrian
tell me what is it

10:25
Michael
Will do, in about 5 minutes

10:25
adrian
this is how I encoded it
perl -e 'use MIME::Base64; local $/; open(my $fh, "/Users/adrian/Pictures/redfox.jpg"); my $contents = <$fh>; my $encoding = encode_base64($contents); print $encoding';

one liner baby

10:26
Michael
Haha - too easy.
Oh man, this is fucked, rad (eclipse) is just hanging.

10:30
adrian
do you have perl installed
?

10:30
Michael
Hang on, I'll do it in .net

10:30
adrian
haha
bring it on
you could just do "echo <blah> | perl -e 'use MIME::Base64; local $/; print decode_base64(<>);' > ~/out.jpg"

where blah is clipboard

10:34
Michael
Damn, if only I had perl or even cygwin installed on this laptop

10:34
adrian
superior tools!
j/k
well now it's a challenge at least

10:35
Michael
They are superior tools

10:35
adrian
I should have sent you something to make it worth while
how good is that though.. a perl one liner to get around GTalk dodgeyness

10:41
Michael
Fark, finally

10:41
adrian
you're good
.NET

10:41
Michael
Man, he's got his head buried

10:41
adrian
that's fast
hehe
Update:
11:04
Michael

Here's my goodness:

FileStream ins = new FileStream("C:\\temp\\base64.txt", FileMode.Open);
StreamReader r = new StreamReader(ins);
string contents = r.ReadToEnd();
byte[] c = Convert.FromBase64String(contents);
FileStream outs = new FileStream("C:\\temp\\something.jpg", FileMode.OpenOrCreate);
outs.Write(c, 0, c.Length);

Budget
Not even stream based.
(the encoding I mean)
What a smarty.
11:10
Michael

Haha
Here's the condensed version:

byte[] c = Convert.FromBase64String(new StreamReader(new FileStream("C:\\temp\\base64.txt", FileMode.Open)).ReadToEnd());
new FileStream("C:\\temp\\something.jpg", FileMode.OpenOrCreate).Write(c, 0, c.Length);

Lovely.
Can someone please tell this guy to stop trying to beat:
echo <blah> | perl -e 'use MIME::Base64; local $/; print decode_base64(<>);' > ~/out.jpg
:)

So now that http://scala-tools.org is back, I could build a basic scala app for about 30 minutes before I started getting this lovely error:

[INFO] Velocimacro : initialization starting.
[INFO] Velocimacro : adding VMs from VM library template : VM_global_library.vm
[ERROR] ResourceManager : unable to find resource 'VM_global_library.vm' in any resource loader.
[INFO] Velocimacro : error using VM library template VM_global_library.vm : org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'VM_global_library.vm'

and
[INFO] Parameter: groupId, Value: com.mutteringmadman
[INFO] Parameter: packageName, Value: com.mutteringmadman
[INFO] Parameter: basedir, Value: /Users/adrian/development/lift-dev
[INFO] Parameter: package, Value: com.mutteringmadman
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: artifactId, Value: evolve
[WARNING] org.apache.velocity.runtime.exception.ReferenceException: reference : template = archetype-resources/pom.xml [line 43,column 16] : ${scala.version} is not a valid reference.
[WARNING] org.apache.velocity.runtime.exception.ReferenceException: reference : template = archetype-resources/pom.xml [line 71,column 16] : ${scala.version} is not a valid reference.
[WARNING] org.apache.velocity.runtime.exception.ReferenceException: reference : template = archetype-resources/pom.xml [line 97,column 25] : ${scala.version} is not a valid reference.
[INFO] ********************* End of debug info from resources from generated POM ***********************

We like that.

Saturday, March 08, 2008

Lockhart's Lament

Everyone who thought they knew what mathematics was about, read this now. This whole paper really resonated with me. It's something that has been systematically killed in me since about year 5. I might start studying mathematics again.

That fact that http://scala-tools.org/ is currently down makes my life as a budding and excited lift developer somewhat oxymoronic.

Thursday, March 06, 2008

Git as the basis for a backup system? Yes yes yes!

Wednesday, March 05, 2008

So you want to scale huh?

CircleShare always gets me excited. No wait, that's lift and Scala actors. No wait that's David Pollack. No wait..

I then put Butterfly on our production hardware (a quad-core Intel machine running @ 2.something Ghz with a hardware RAID card that has buffering.) At 10,000 simulated users (>650 requests per second) the server had a load average of about 0.40 and the Java and MySQL processes we using about 15% CPU (of the 400% available).

To date, I have not done any material performance tuning of either lift or Butterfly. I was pleasantly surprised that both performance the way I had hoped they'd performance. As expected, the DB seems to be the gating item in performance. As we scale CircleShare, I've got plenty of performance headroom using Scala Actors like I did with Skittr.

Spelling leaves a bit to be desired, but cool man. Very cool. Man.

This makes perfect sense! Moses was on drugs at the top of Mount Sinai. It's the most obvious explanation, so why don't more people talk about it. Really.

Monday, March 03, 2008

Read through and learn about the Plan 9 source code. 9.pdf looks great as a detailed design overview and code commentary.

Favourite code comment so far:

/*
* Discover the disk geometry by various sleazeful means.
*

from /plan9/sys/src/libdisk/disk.c

:)

Learn about Ambient Calculus.

Sunday, March 02, 2008

from www.spiegel.de

Saturday, March 01, 2008

'Programmers At Work' blog goodness

Came across an informative, interesting, and inspirational blog today; Programmers At Work.

Two very interesting posts from the original PAW 1986 Interviews are a must read for people interested in computer science:

Charles Simonyi
Butler Lampson

Definitely subscribing to this one.

about me