Sunday, April 27, 2008

We are the Cloud

There's been lots of news lately about "cloud computing" and suches. Google's out there with their new app engine, Amazon has their web services, Microsoft probably has something (I tend to ignore them :)). And there's also the data portability organization. It's all got me wondering.

It's no news that people are posting huge amounts of data on the web. Photos on flickr, text on blogs and sribd, videos on youtube, etc. etc. etc. The idea (my understanding of the idea, anyway) of data portability is that we should control our data. If we post a photo on flickr and then want it, instead, elsewhere (just on our local computer, on some other photo service), we should have the ability to do so. Web services should interact, like if we want to order printed copies of those photos from some other service, we should be able to tell flickr to let the other service grab the picture. There are things in place for this sort of thing to happen (oauth, companies opening up APIs for their services).

It seems to me, though, that there might be another way for us to store our data "in the cloud", and allow web services or individuals to access it, once we give them permission. The other project I have in mind when I've been thinking about this is bittorrent. I'm trying to envision a decentralized cloud, where we can store and interact with (and allow others to do so as well) our data. So instead of having our data with google or amazon (even if we have 'control' over it there), I'm wondering about maybe running a client on my computer (kinda like a bittorrent client), from which I can store and access files among the other people running the client. In order to use the client, I agree to set aside some of my hard drive space, and I'm then allowed to store some related amount among the others using this system. Rednundancy and privacy and encryption all built in, of course. So my computer dies, but the data is all stored in the wild, and I can retrieve it. The folks doing openid have a decentralized system, and I can't help but hope lots of the same ideas work for storing files in this cloud.

There's also no reason there should only be one client for this system. There are lots of bittorrent clients. The system is really the architecture and protocols. Then there probably should be some people keeping track of "trusted clients" or something, because if I'm storing my data on other people's computers, I want to know they aren't doing things with it that they shouldn't be.

I know none of that was precise, well thought out, or well described. I know that I don't know enough right now to even pretend that I can take this idea very far. Issues of privacy and safety and copyright and... I don't have answers to. My hope is that there is a kernel of a worthwhile idea here, and that somebody in a position to do something about it finds it.

Friday, April 25, 2008

Open Source Web Apps

So for no particularly good reason I decided to try switching from my desktop instant messenger client (pidgin, formerly gaim) to using the chat feature of gmail. I'm still going with the experiment, and have only been at it a day or so. I don't really see any particularly overwhelming advantage either way. Switching to web based applications is a trend I'm interested in though. But this has me wondering... what happens about open source programs when you shift to web based applications? For example, at some point I hacked a couple lines into my gaim source that randomly selected a new away message (from my set list) every half hour or something, when I was away. The only reason I could do that was because gaim was open source. Shifting to gmail chat... even if it is javascript and I can technically see the source (because, after all, my browser has to be able to see it), it (1) has been horribly obfuscated, (2) isn't in a place I can really modify it. When I download the gaim source, there it is on my local machine waiting for me to change it. But with web apps, even if I copy some javascript files offline and manage to un-obfuscate enough to make a change... then what? I can't reload it to gmail to have it work. And I'd be surprised if the script worked away from the google domains.

I'm not really sure I'm going anywhere with this, it was just a little thought that occurred to me. Maybe I'm misunderstanding web applications. I guess part of the idea with some of the widget standardization is that a widget written one place can be used in another place (like facebook versus igoogle (I don't know if that's currently how it works)). Is that some of the idea with opensocial?

Anyway... I guess the point is I've got lots to learn. Nothing new there.

[Update 8 May 2008: seems like this page is pretty relevant]

Upgrading to Hardy Heron (pt 2)

Well, here I am. Since I did the upgrade, instead of a fresh install, nothing looks particularly new. That's ok (but I still have the urge to start from scratch, and see what it's like). There seemed to be some issues toward the end of my upgrade, the chillispot thing came up again, and I killed another process there, and it even said 'update-manager' failed to update. So we'll see how that goes. I also still want to play and see if I can get my wireless working this time, as I never did in Gutsy Gibbon. I guess the big new thing is using the firefox beta 3 (which I could have done without a full system install), which I'll need to play with some more to see what all new awesomeness it has. At the very least, it doesn't crash when I close flash videos that are still playing, as opposed to what happened before this upgrade. So that's nice. I certainly want to think that the beta is snappier too, which I've read in other places. Hopefully I still feel the same as time goes by.

In the mean time, I'm off.

Upgrading to Hardy Heron (pt 1?)

I decided to use the built in update manager in ubuntu to upgrade to hardy heron today. It's been chugging along for about 6 hours now, so I'm thinking it might have been quicker to burn a cd and start from scratch. Plus then I get to mess about with doing lots of customization. But anyway, it got to a point where it said about 20 minutes remained, so I left it alone and went and did dishes. When I came back, it was stopped at 17 minutes remaining. In the terminal it has up to show progress, it said it was copying a conf file for chillispot. Not the sort of thing I'd expect to cause problems. I could minimize the window, but the arrow to hide the terminal didn't do anything on a mouse click. I opened up a separate terminal, and a 'ps -aux' showed a couple of processes that mentioned chillispot. I took a stab with 'kill' to end one of the processes (I should have looked more into the process codes, I guess). A window popped up to let me know configuration of chillispot had encountered an error, but that my upgrade would continue. So hopefully chillispot isn't something I use much. Guess I'll go read about it while I wait these last 10 (hopefully) minutes for the upgrade to finish. Plus it gives me time here on my XO.

Sunday, April 20, 2008

Some CSS Success

If you actually visit this blog page, instead of just reading along via rss or whatever, you might have noticed that the link colors in the "Reader Shared Items" block didn't match the link colors for the rest of the page. I finally decided to fix that today. It took a little digging around with Firebug, but it was worth it. I found that the reader widget makes its "a" HTML elements with class "i", so I put in a line "a.i { color: \$linkcolor; }" in the "Edit HTML" bit under "Layout" for blogger. That didn't work. But by an odd coincidence, just this morning I read about the "!important" bit of css, so I tried that (it makes the property that it is associated to harder to ignore), and it worked. And then I realized that there was no point in including an extra bit of css for just the "a.i" class, I might as well just tack "!important" to the color line in the existing "a:link" css (in my template, it's the first thing after the css for "body"). And that seems to have worked, which is nice.

[Update (~10 minutes later): I just realized that, of course, this changes all of my link colors. That only seems to have affected my post titles colors. But that's in the "Posts" section of my HTML template, under ".post h3 a", with "color:\$titlecolor". Tack an "!important" there, and it all works out. For good measure, I also put some more "!important"s on the css lines for "a" toward the top of my template (under "Body"). The Reader Shared Links were still underlined, while none of my other links where (unless you hover over them), so I put a "border-bottom: none !important;" in the css for "a" toward the top (there under "body" again), and it seems to have worked out.]

Anyway, I've found the firebug firefox extension to be an awesome tool for messing with webpages. You can click around and look at all the code for everything everywhere. And you can modify the source and watch it affect the page right away. Totally sweet. If you play with webpages and haven't used it, you should check it out.

(Sorry if any of the terminology above is wrong, "elements" or "properties" or whatever. Feel free to let me know if I mis-spoke, I'd like to get it right someday)

Thursday, April 17, 2008

DiffEq

I have, to date, successfully avoided taking any differential equations classes. When I think about them, 'ugly' jumps to mind. Sure, I enjoyed Euler's method when we learned it (in high school, unless I'm totally mis-remembering something). And sure, differential equations seem to be what drive the real world. But the real world is also fairly ugly (unclean might be a better word), so it seems to work out.

Anyway, the point is, I learned a little something the other day about differential equations that I liked, and thought I'd share.

So, suppose you have a rectangle in the plane, with edges parallel to the coordinate axes (we might as well put the lower-left corner on the origin), with integer width, w, and height, h. Suppose you have a fixed value for each edge of the rectangle, representing temperatures along those edges, and would like to model the temperature of interior points of the rectangle. For simplicity, suppose you want to approximate the temperature at integer coordinates in the interior of the rectangle. Let Ti,j denote the temperature at coordinate (i,j). We already know this value along the boundary of the rectangle (i=0,w or j=0,h), and would like the (w-1)(h-1) interior points.

To get our approximation for the values, we think about relationships among them we might like to assume. An easy and reasonable thing to assume (to get our approximation, anyway) is that the temperature at point (i,j) is the average of the four neighboring points (one up, down, left, or right). In equations:


4*Ti,j=Ti-1,j+Ti,j-1+Ti+1,j+Ti,j+1


This gives us (w-1)(h-1) linear equations in the same number of variables, and so we expect a unique solution. In fact, if you think about it in terms of matrices, the coefficient matrix has no more than 5 nonzero entries in any row (less than 5 if the point is one away from the boundary).

I don't know for sure, but the notes I was looking at seemed to indicate that this was called the 'finite difference method'. You may also notice a complete lack of derivatives, and thus differential equations. I'm sure they are there somewhere, but I also expect I like it just as well with them hidden.

Monday, April 14, 2008

Puzzle

While tutoring the other day I came across a puzzle I don't know how to do. This isn't exactly noteworthy, as I can't do most puzzles. But it seemed like an interesting enough puzzle, so I thought I'd give it broader attention:

50 watches are placed at random on a table. Show that at some time the sum of the distances from the center of the table to the ends of the minute hands is greater than the sum of the distances from the center of the table to the centers of the watches.

The problem didn't say anything about the sizes of the watches (like, if they were all the same). Also, I guess we should say that they are all facing up (does it matter?). I think the problem did mention that the watches weren't all necessarily all set to the same time, just that they were all running at the same, accurate, pace.

So, any thoughts?

Thursday, April 10, 2008

Remembering Dr. Stong

I'd like to take a few minutes to reflect on the short time I've known Dr. Stong, as he sadly passed away this morning. It was only last year that he retired. I had hoped that he would have a long and happy retirement, continuing to show up for topology seminar (so that he could fall asleep in the corner). I wish I had arrived in the department earlier, so that I might have gotten to take more classes with him. Dr. Stong was the only professor I know that cursed happily throughout lectures, making them all the more interesting. Though his hands were visibly shaky away from the chalkboard, his script was among the most tidy I've seen written on blackboard, which I was always amazed by.

It frequently happens in mathematics that you set up some maps between objects, making some obvious choices, and the maps have nice properties. For example, in topology your maps hopefully work out to be homotopy equivalences (at least), or when you apply homotopy or homology functors you get isomorphisms. Dr. Stong had a theorem along these lines, announced in class one day: every map is an isomorphism. Clearly this isn't correct, but I know that he meant: every map that isn't obviously not an isomorphism is an isomorphism (replace isomorphism with whatever property you are looking at). I will continue to refer to this as Dr. Stong's theorem. I'm sure his mathematical research deserves much better recognition, but I don't know any of it. Stong's theorem shows up all the time :)

The only class I had with Dr. Stong was cobordism, his area of expertise. However, he was one of the professors that proctored my second year oral exam. Though I didn't think it went very well, after I had finished and retired to my office he came down to say that he was pleased, and that it went as well as could be hoped. Certainly I was relieved that I had passed, but also grateful that he come by to let me know. It was a wonderful gesture. I suppose I hadn't thought much about it, but I had kinda figured on Dr. Stong being at my thesis defense. Alas.

I also remember that Dr. Stong objected to one of the definitions I made toward the beginning of a talk I gave last semester. It was a perfectly legitimate objection, questioning mostly a matter of notation. I don't honestly recall, but I like to think that I defended my notation, as he let me continue my talk. He didn't say anything else the rest of the talk, and I tend to think that he fell asleep. I'll miss Dr. Stong's objections in seminars.

So the department is left without its one cursing professor and its Santa (Dr. Stong dressed up as St. Nick for the holiday party). Our topology seminar will have one more empty desk. I'll still have my stories.

Mathematical results last forever, even when the mathematician doesn't. Goodbye Dr. Stong.

Monday, April 7, 2008

What do you do?

I've heard that at least one mathematician answers this by saying that they are a tennis instructor. It sets things up to avoid the regular 'I'm terrible at math' and 'I can't even balance my checkbook' replies. Somehow, I seem to have stumbled into a section of math that I think is easy to explain to people:

So, I do topology. You know that in geometry you study shapes. And you have some notion of when two shapes are "the same", that is, if you can rotate them and shift them around and maybe flip them over, and they line up. But that's all you are allowed to do, these few rigid motions. In topology, we allow more things to be the same. The standard analogy goes: if you made those circles and squares and triangles in geometry using a piece of stretchy string or something, you could deform the string until you got all three of those shapes. So now we decide that they are really all the same. The question now becomes, "how can you tell when two things are the same?", and this is the question topologists try to answer.

If I want to go further, and the person is still listening, and I feel like they remember what polynomials are (look like), I might mention that within topology is the field of algebraic topology. Here, the way you distinguish shapes is you look at them, and assign some sort of more rigid (algebraic) object to them. The idea being that whenever two shapes are the same, in the loose sense of topology, then there is some correspondence between their associated algebraic objects. For example, in the study of knots, you look at a knot and write down a polynomial (by following some particular rules). Two pictures of a knot could look different, but if you go through the process of writing down the associated polynomials, you'll get the same answer.

Finally, if the person is still listening, I might even introduce the calculus of functors (without saying functor). I make sure they remember Taylor polynomials from calculus. It was this process of getting the best approximation to a given function by using polynomials. The idea being that somehow polynomials are easier to understand than your average function, so if you can get a good enough approximation to your crazy function using polynomials, you're in good shape. Well, it turns out that you can define what it means to be 'polynomial' and 'the best polynomial approximation' in other contexts. And so I'm supposed to be actually computing the best polynomial approximations for this one particular example. Heavy on the supposed to be.

Sunday, April 6, 2008

Mod Squares

The other day in Homological Algebra we started talking about group (co)homology. I didn't bring my notes home (so I probably have some bits wrong below), but I noticed a strange thing pop up in class that I recognized in a few other contexts. We were, at the time, talking about computing $H_1(G;\mathbb{Z})$. From the topological perspective (which we aren't using in class), we know this is $H_1(BG;\mathbb{Z})$, which is the abelianization of $\pi_1(G)$. The way we identified it in class was as follows: Consider $\mathbb{Z}[G]\rightarrow \mathbb{Z}$ given on generators $g\in G$ by $g\mapsto 1$ (so the map just adds up the coefficients). Let $J$ be the kernel. In class, if I remember correctly, we saw that $H_1(G;Z)$ was the same as $J/J^2$.

This 'mod squares' bit I have seen before, in two other contexts. Originally, I thought I had seen them when we talked about the Dieudonne determinant in Algebra 4. Looking back, it looks like we defined the determinant as a map $GL_n(D)\rightarrow D^*/[D^*,D^*]$ (looks like $D^*$ should be referring to the units of $D$), so at least that looks similar to the above, it's an abelianization. In fact, 'mod squares' did show up in algebra 4, when I was learning about Clifford algebras and the spin group. I just dug up my notes, and it looks like I had a spin norm, a map $SO(V)\rightarrow F^*/(F^*)^2$. The kernel of this map then had a double cover by $Spin(V)$.

The other place I think I've seen this 'mod squares' bit was in the very small bit of algebraic geometry I remember. Something about an $\mathfrak{m}$ (probably a maximal ideal somewhere), and $\mathfrak{m}/\mathfrak{m}^2$ having a useful interpretation.

Anyway, I know the above was all quite vague, and I apologize. I should put in the energy to go back and look at these three things together, and see if there is some general principle I should be noticing. It feels like there should be, but I'm not sure what. Anybody have any idea what I'm talking about?

While I'm at it, anybody know if there is some formalization about the similarity between Sylow subgroups of finite groups and maximal tori of Lie groups? "They look similar" always seems to hint at something in mathematics.

Saturday, April 5, 2008

Greek Mathematician with Fish

Thanks Matt Z. for letting me post my TeXed version of his "Greek Mathematician with Fish" sketch. You can check it out here.

Wednesday, April 2, 2008

Missing Out

Damn it all. Just yesterday I was talking about a sense of missing out. This morning I woke to find that it was justified. For some reason I decided to look at the computer science department's seminar list. Turns out, last week Richard Stallman himself, the man, the myth, the legend, was here talking about free software. And I had no idea. FAIL.

Tuesday, April 1, 2008

Why?

Before I get to far here, I should point out that this is likely to be a bigish post, and (like most) uninteresting. If you'd rather, watch this bit of Louis C.K. on youtube. The bit I was looking for is toward the end, but it's all funny. Anyway, my goal with this post is to write some things down with the hope that I can then move on. We'll see how that goes.

Alright, so my 'why run' question yesterday remains, I think, unanswered. And will continue to. But I've got another answer to throw into the mix: to know what you are capable of. Like in Fight Club: how can you know yourself if you've never been in a fight. I read an article recently about an ultramarathoner talking about how in the middle of a 100 mile run you really get down to a raw state, and he wanted to see what that was like. I wouldn't know, and for now I'm happy to take his word for it. Another lingering issue from yesterday was this striving for a sense of accomplishment. But why should I need to accomplish anything? Most people don't accomplish much, it seems, in any sort of broad sense. Isn't it egotistical of me to think I should be capable of something? Even to say that most people don't accomplish much... I'm pretty much an ass I guess.

Ok, so moving on from 'why run', how about 'why collect dvds/cds?' More to the point, why keep my current collection? It really seems like physical media is on its way out (I'm gonna make a brief divergence here, to avoid making a whole seperate blog post about more pointlessness: when I get information on pieces of paper, it's starting to really feel like a pain. Paper isn't searchable, and it occupies physical space. If that same information was a digital file on my computer, I can search it, worry less about losing it, and probably other benefits as well. Where's my damn e-paper? Don't get me wrong, I like books. But I'm talking about single sheets of paper, or just a couple together. If whatever is on them has any value, I'd rather it be digital.), that perhaps this last round of hd-dvd and blu-ray are the last media wars. Of course, I could be wrong. But either way, the value of the dvds on my shelf is not going up. If I'm hoping to get anything back for them, there's no better time to sell them than now. But how do I decide which to get rid of? Some almost seem to define me. They are the ones that, when I meet new people (which doesn't happen) I make sure they have seen. They are the movies that I quote daily, or easily could. So if I'm going to trim down my dvd collection, where do I draw the line? What if another movie comes along soon, then I'm adding back it... It's basically pointless. Maybe I should just dump all of them, right now, and vow not to buy more. The monk route. But then I've got a sense of loss. Ok, so I back them up to a hard drive first, then sell them. And then I'm breaking copyright laws (I suppose it wouldn't be a first). Am I likely to make more money selling them than it would cost to get a drive big enough to hold them? I give up. I'm not going to fight the inertia of having a collection. I should, though, fight the urge to expand that collection.

So why do I watch so many movies anyway? Mostly I can't remember them, and I don't really enjoy conversing about movies after they are over. I don't try to analyze movies to pick out main themes or anything. I think I have, frequently, just used them to 'get away'. But now here I am talking about how I wish I was accomplishing something, and I'm still watching these damn movies. It's that same inertia as owning a collection, the comfort in a constant, reveling in routine. (While I'm playing word games here... what's the deal with 'casual', 'casualty', and 'causally'? Those are some damn close spellings for fairly different words. Ok, now I'm on a language kick (way to stay focused)... can't we all agree on some global language? I know there's rather a lot of us, but come on, we could really stand some more global unity. Haven't people said that finding evidence of life on another planet would be a great incentive to bring us together globally? I'm ready.)

Of course, some movies I really do like, and enjoy quoting. But again, why? To show off the extent of my worthless movie watching? I've seen more movies than you, and that's an accomplishment? I hope it's not my only one. Maybe I quote movies to try to make you feel inferior about not recognizing the quote. I am, as noted above, kinda an ass. Or maybe I quote movies that I know the people around me will know, so I can share in the joyful laughter of a group of friends. Some sense of belonging?

Another theme I'm noticing here and in some recent posts, aside from accomplishments, is a sense of missing out. If I'm not watching lots of movies, maybe I'll miss a great one. Or not subscribing to enough of, or the right, rss feeds, I'll miss something. I'm supposed to stop and smell the roses, right? Take pleasure in the little things around me? Enjoy what I have, and stop pining for what I don't?

There's no point to wondering, to asking why. There doesn't seem to be an answer, and even if there is, there seems to be no hope of finding it. Like with religion. I need to be more agnostic at a low level. Stop asking why, and just go do. This was, if I recall, one of my original draws to mathematics: there is an answer to be found, and it can be. There's a certain austere definiteness about mathematics that is powerfully attractive, a way out of the mess that is the real world. Ok, sure, I know about the incompleteness theorems and things, but still.

It looks like I've said what I had hoped to say. And it didn't take as long or as much space as I thought. Hopefully I've resolved something here, and can get on with... life? Is that what this is?

Way to go, ending a resolution with a question. FAIL.

April Fools

So today has been claimed by some as annual Day Without Google. I'm starting it off, like I do so many of my other days, with a heaping pile of FAIL. I've already posted on this blog and used gmail, and plan to use reader when I'm done here. But I have not yet used google for a web search (well... I searched for some comics from the search bar on that page, and it happened to be powered by google... my b). I'm not sure how seriously I'll take 'Day Without Google', but that's because I'm a bad person. Maybe you'd like to give it a try. There are lots of search engines out there, and the folks at AltSearchEngines are happy to point you to some. And we're brought up to believe competition is a good thing. So... I'll be going now.