Mar 15, 2010

Lambda calculus for Tensor Analysis

I know I cant shut up about it, but I really like lambda calculus. Even better llama calculus, the anything goes fast and loose version I use for everything. In fact, the only place I dont like using lambda calculus for is theoretical computer science. I think it offers an abstraction thats really needed in clean math and this is extremely apparent now that im taking this tensor analysis course. Take for example, pullbacks, where we're essentially dealing with higher order functions. Or the fact that we can make a map from a vector space V to its dual with a bilinear. In math notation, Wikipedia says this is done by the map:

$ v \rightarrow \textless v , o \textgreater$

This just seems ... wrong to me. I prefer because of its possibility to handle more complex ideas:

$ \lambda v. \lambda x. \textless v, x \textgreater $


More commonplace is to see this definition of the tensor product:

$ \tau \oplus \theta(v,w) = (\tau v) (\theta w) $

where i feel more comfortable writing in my notes:

$\oplus = \lambda \tau, \theta. (\lambda v, w. (\tau w) (\theta w)) $

Truth be told, I would write both, but trust the lambda notation more. The ideas are defined much more concretely. For pullbacks:

$ F* = \lambda p. p \circ f $

Then of course we have an easy way to talk about the function that makes a pullback:

$ \lambda f. \lambda p. p \circ f $

Iono, maybe Im crazy for mixing different notation like this, but it makes things clear to me.

This all ties back with earlier content in this blog -- Good notation concerns me alot. The symbols used for math reflect the content of the framework we are working in and can be seen as agents of them. Not only do concretely defined notations that are intuitive make learning and recording content easier, they may as I have argued free us from unintended psycholinguistic effects.

Mar 8, 2010

Soft Science Paranoia

It exists, I swear it does. Mention anything to a person in a soft science that doesn´t explicitly mention the value of their field of study and theres a good chance theyll freak out at you. Even if youre trying to be helpful (hey a computational approach might offer insight into this), be wary of the Liberal Arts student who may feel their domain of control threatened. People who believe in the inferiority of ¨easier majors¨dont even speak their mind to cause a defensive reaction.

Meanwhile, the soft science people prejudge anyone from the more the rigorous fields - God knows Ill get angry people who are upset I think physics is more rigorous than Comparative Literature. Apparently knowing calculus makes me incapable of enjoying poetry, or some stupid crap like that. Theres some sort of strange anti-intellectual thing going on when someone can proudly declare they dont know basic college level math and are proud of it. If I were to say the same about literature Id never hear the end of it.

To the people of Soft Sciences: We have never claimed that your field of study was inferior, so please stop being paranoid and treating us like shit because we are smarter than you.

Feb 23, 2010

Graph theoretic software engineering??

Im updating because I havent in too long. Ive spent the past semester using Dvorak and am now trying to get back into the swing of using Qwerty. I hope it doesnt make writing this too hard.

So I was glancing over the first chapter of Event Based Programming, and I had this weired idea about coupling in software engineering. Coupling roughly means any dependency between parts of code. Strong dependency means that if one portion of the code is changed, the parts dependent on it must also. In this sense, a major goal of good software design would be

I should first say that Im not endorsing the book in any way. As far as Ive read, Its full of pseudo-mathematics and needless over-formalisms. In one part he talks about a couplings creating an algebraic space, and starts to apply a euclidean metric for god knows what reason, other than to make it seem more authoritative. This makes me afraid Im wasting my time, but maybe Im just being a jerk and should give it more of a read. Ive never read about formal treatments of the issue of coupling in software development before this.

The author mentions the existence of information theoretic approaches to the problem. Apparently, coupling is a form of entropy and therefore the information theory applies to the subject. His personal approach, on the other hand, is to classify the kinds of coupling, which isnt really satisfying in abstract. Despite this maybe he providing a common language in which to discuss them intelligently. Categorization is often the first step to understanding, but without a theory behind their organization, its pretty much just useless memorization.

My natural inclination is to describe coupling as a graph. Assume all parts of a program are functions in the sense of functional programming. We can draw a directed lines between all the functions in a program so that a points to b if b depends on a. Without any superstructure applied we will have a giant mess. Naturally there will be regions of close mutual connections, giving us a sense that these portions should be located psychologically close to each other in our minds. These portions are the superstructures of software engineering: classes, libraries, modules etc.

Given that there is no way to really remove interdependencies between functions, how can we arrange them to reduce ¨clutter¨. The question is similar to one were confronted with in this game. A strategy is to put the functions in a group sy some kind. These groups are connected to each other whenever they contain functions in each other that connect. Since these groups are abstractions, and all connections in them are abstracted away, we would like to set them up in a way that minimizes the connections between groups. Meanwhile, having too much complexity in a group is unacceptable. We could allow groups to be made of groups. What grouping reduces the clutter the most? With a simple definition of clutter we could write a program that determined the optimal arrangement.

Jan 6, 2010

Self portrait

Some examples, more to come.

Dec 7, 2009

Big Miura-Ori


I used painters paper I got from a hardware store, 9' x 13', if i remember correctly.Its hard to find a single sheet that big. The paper is a bit too thin and weak, i would have preferred something a bit stronger that could have held up to a bit more abuse. I had originally intended to make it stand up against a wall on its own. Im using tape now.

I really like it as an exercise in creating a fluid object. It naturally seems to flow on any surface its put on.

dolphin

Yesterday, I walked into the the used book shop on Main in Urbana with a large helium balloon in the shape of a dolphin and asked if he had a copy of Boethius's consolation of philosophy. He didn't.

Dec 4, 2009

LATIN






I had to do this for extra cred for this class Im taking. Use 25 Latin phrases in context, so I thought why not make it awesome!