Skip to Content »

Michi’s blog » archive for 'English'

 Collaborative tools

  • February 17th, 2012
  • 10:57 pm

I do quite a bit of collaboration. In fact, since after my PhD research, I have written exactly one preprint that does NOT spring from a collaboration. And there is quite a bit of technological support that flows into a good collaboration of mine. Here are some of the tools I uses and some of the thoughts I have on them.

Version control

Since I work in mathematics (and, arguably, in the fringes of Theory CS), everything I write is written in LaTeX. This is for one thing very helpful, since it means that the actual texts we collaborate on are plain text with markup. Eminently suitable for the toolkit provided by the software community.

 A quick python hack for a mathematical puzzle

  • November 12th, 2011
  • 4:09 pm

So, today I saw this in my Twitter feed:

«Phil Harvey wants us to partition {1,…,16} into two sets of equal size so each subset has the same sum, sum of squares and sum of cubes.» — posted by @MathsJam and retweeted @haggismaths.

Sounds implausible was my first though. My second thought was that there aren’t actually ALL that many of those: we can actually test this.

So, here’s a short collection of python lines to _do_ that testing.

import itertools
allIdx = range(1,17)
sets = itertools.combinations(allIdx,8)
setpairs = [(list(s), [i for i in allIdx if i not in s]) for s in sets]
def f((s1,s2)): return (sum(s1)-sum(s2), sum(map(lambda n: n**2, s1))-sum(map(lambda n: n**2, s2)), sum(map(lambda n: n**3, s1))-sum(map(lambda n: n**3, s2)))

goodsets = [ss for ss in setpairs if f(ss) == (0,0,0)]

And back comes one single response (actually, two, because the comparison is symmetric).

 Teaching and seminars up ahead

  • August 23rd, 2010
  • 12:37 pm

I’ll be talking quite a bit in the next couple of weeks; here’s a “heads up” for those who might want to come and listen.

25 August, 1pm, Linköpings Universitet. The topology of Politics.

1 September, 10am, KTH. Combinatorial species, Haskell datatypes and Gröbner bases for operads.

1 September, 1pm, KTH. Topological data analysis and the topology of politics.

2, 3, 6, 7 September, 11am, KTH. Mini-course on Applied algebraic topology.

I’m happy to give out details if you’d like to come and listen.

 Itinerary for the Summer

  • April 26th, 2010
  • 4:38 am

A few things that may interest people.

1. I’m going on the job market in the fall. I’m looking for lectureships, tenure tracks, possibly 2 year postdocs if they are really interesting.

2. I’m very interested in adding visits, adding seminars, adding anything interesting to this itinerary. If you want to meet me, send me a note, and I’m sure we can find time. My email adress is easy to google, and listed in the site info here.
I have current research and survey talks mostly ready to go for:

Barcodes and the topological analysis of data: an overview

 Another kind of sports reporting

  • February 23rd, 2010
  • 8:08 pm

Inspired by John Allen Paulos, who just now tweeted

Obvious, but NBC hasn’t said: Canada, Norway, Germany way ahead of US in Olympic medals per capita. Many ways to rank: Cf. Arrow’s theorem.

I decided to redo the medals list. Here, the number of medals per capita among the top countries.

Country Gold/capita Silver/capita Bronze/capita Total/capita
Norway 1.23E-06 6.17E-07 1.03E-06 2.88E-06
Austria 3.58E-07 3.58E-07 3.58E-07 1.07E-06
Slovenia 0 4.87E-07 4.87E-07 9.74E-07
Switzerland 6.43E-07 0 2.57E-07 9.00E-07
Latvia 0 8.90E-07 0 8.90E-07
Sweden 3.21E-07 2.14E-07 2.14E-07 7.49E-07
Estonia 0 7.46E-07 0 7.46E-07
Slovakia 1.84E-07 1.84E-07 1.84E-07 5.53E-07
Croatia 0 2.25E-07 2.25E-07 4.51E-07
Netherlands 1.81E-07 6.03E-08 6.03E-08 3.01E-07
Canada 1.47E-07 1.18E-07 2.94E-08 2.94E-07
Czech republic 9.51E-08 0 1.90E-07 2.85E-07
Germany 8.56E-08 1.10E-07 6.12E-08 2.57E-07

 Testing out the wplatex package

  • February 3rd, 2010
  • 5:38 am

Eric Finster, over at Curious Reasoning has built a python script to allow you to write WordPress posts entirely in LaTeX , and upload them. The script parses the LaTeX code and generates HTML that expresses the same structure.

This, here, is me trying it out. With any luck, the appearance of a new toy will get me back to actually blogging some more – it’s been winding down a bit much here lately.

 [MATH198] Lecture 10 (last lecture) posted

  • December 2nd, 2009
  • 11:17 pm

Now up: Lecture 10 with the definition of a topos and a derivation of internal, inutitionistic logic within a topos.

 [MATH198] Lecture 9 posted and lectured

  • November 19th, 2009
  • 7:44 pm

Lecture 9: Catamorphisms, Anamorphisms, more from that zoo; adjunctions, some properties and some examples.

 [MATH198] Multiple lectures posted

  • November 11th, 2009
  • 8:31 pm

I have been remiss in updating here. Since the last time I posted, I have posted:
Lecture 6, featuring some interesting limits and colimits, culminating in the introduction of adjoints.

Lecture 7, featuring the introduction of monads based in adjoints, with the connection between the monoid of endofunctors and the Haskellite specification of monads.

Lecture 8, featuring Eilenberg-Moore algebras, initial algebras for datatype specification, Lambek’s lemma and structural induction and recursion with endofunctor algebras.

 [MATH198] Lecture 5 is up

  • October 23rd, 2009
  • 6:07 pm

And, as it turns out, my logic-fu is lacking. Next time around, it’s likely I talk about the CCC = typed λ-calculus correspondence, but won’t try to actually produce the correspondence explicitly.

 [MATH 198] Lecture 4 and a question for the community

  • October 15th, 2009
  • 6:56 am

Lecture 4 was held, and the notes are up on the wiki: Lecture 4 notes

During class, and in unrelated conversations afterwards, though, the question emerged:

If Formally differentiating datatypes gives us zippers? What happens if we formally integrate datatypes?

 [MATH198] Third lecture is up

  • October 9th, 2009
  • 8:09 am

The third lecture is up on the haskell wiki.

 [MATH 198] Second lecture

  • October 5th, 2009
  • 9:25 pm

I’ve been maddeningly slow lately. With everything.

Since last week Wednesday, the second lecture is up on the Haskell wiki.

 [MATH198] Lecture 1 now online

  • September 24th, 2009
  • 9:18 pm

The first lecture has been successfully held. The notes – which may well be augmented once I get hold of the students’ notes – are online on the Haskell Wiki

 [Stanford] MATH 198: Category Theory and Functional Programming

  • August 29th, 2009
  • 7:19 am

Category theory, with an origin in algebra and topology, has found use in recent decades for computer science and logic applications. Possibly most clearly, this is seen in the design of the programming language Haskell – where the categorical paradigm suffuses the language design, and gives rise to several of the language constructs, most prominently the Monad.

In this course, we will teach category theory from first principles with an eye towards its applications to and correspondences with Haskell and the theory of functional programming. We expect students to previously or currently be taking CS242 and to have some level of mathematical maturity. We also expect students to have had contact with linear algebra and discrete mathematics in order to follow the motivating examples behind the theory expounded.

Wednesdays at 4.15.

Online notes will appear successively on the Haskell wiki on http://haskell.org/haskellwiki/User:Michiexile/MATH198

 Soliciting advice

  • July 22nd, 2009
  • 3:28 pm

Dear blogosphere,

come this fall, I shall be teaching. My first lecture course, ever.

The subject shall be on introducing Category Theory from the bottom up, in a manner digestible for Computer Science Undergraduates who have seen Haskell and been left wanting more from that contact.

And thus comes my question to you all: what would you like to see in such a course? Is there any advice you want to give me on how to make the course awesome?

The obvious bits are obvious. I shall have to discuss categories, functors, (co)products, (co)limits, monads, monoids, adjoints, natural transformations, the Curry-Howard isomorphism, the Hom-Tensor adjunction, categorical interpretation of data types. And all of it with explicit reference to how all these things influence Haskell, as well as plenty of mathematical examples.

But what ideas can you give me to make this greater than I’d make it on my own?

 Guess the plots!

  • June 3rd, 2009
  • 5:30 pm

What do these depict?


Here are two others. Different data source, different point in time, but what are they?


They are all linked in pairs – one coloured and one black linked together. They are not sports related. And they are taken from real world data. The colours are relevant and constitute a hint in their own right.

 Gröbner bases for Operads — or what I did in my vacation

  • May 8th, 2009
  • 6:28 pm

This post is to give you all a very swift and breakneck introduction to Gröbner bases; not trying to be a nice and soft introduction, but much more leading up to announcing the latest research output from me.

Recall how you would run the Gaussian algorithm on a matrix. You’d take the leftmost upmost non-zero entry, divide its row by its value, and then use that row to eliminate anything in the corresponding column.

Once we have the matrix on echelon form, we can then do lots of things with it. Importantly, we can use substitution using the leading terms to do equation system solving.

The starting point for the theory of Gröbner bases was that the same method could be used – with some modification – to produce something from a bunch of polynomials that ends up being as useful as a row-reduced echelon form.

 Applied knot theory

  • March 16th, 2009
  • 2:41 am

Tech note: All figures herewithin are produced in SVG. If you cannot see them, I recommend you figure out how to view SVGs in your browser.

A few weeks ago, my friend radii was puzzling in his server hall. He asked if it was possible to prove that what he wanted to do was impossible, or if he had to remain with his gut feeling. I asked him, and got the following explanation:

He had two strands of something ropelike, both fixed at large furnishings at one end, and fixed in a fixed sized loop at the other. He wanted to take these, and link them fast to each other in this fashion:

I started thinking about the problem, and am now convinced I can prove the impossibility he asked for by basic techniques of knot theory. The argument is what I’ll fill this blog post about.

 Picking fights over religion

  • February 4th, 2009
  • 10:16 am

I suspect this will be a flame war magnet. On the other hand I feel compelled to write it.

First a bit of backstory. My wife enjoys, often and with engagement, discussing theology with her new friends. One of them, a pentecostal christian, gave her the book I don’t have enough faith to be an atheist by Norman Geisler and Frank Turek. I picked it up while visiting her, looking for some book to read, and have forced myself to read through most of it since.

The authors try to prove the correctness of Christianity over all other religious attitudes, but most importantly, prove that Christians are right and Atheists are wrong. And the way they do this is oftentimes insulting, very often ignorant of how to deal with the logical tools they try to use, and constantly reeking of a lack of objectivity in their purportedly objective exposition.

 The end of the line

  • August 4th, 2008
  • 6:15 pm

And a new beginning.

We seem to be a whole crowd finishing our PhDs all at the same time: pozorvlak, Gooseania and I. While my blog started as inspired by Gooseania, I won’t close it just because I’m done. I’ll continue blogging my Postdoc years, and hopefully all the way through my academic career.

 Junior Mathematical Congress 2008

  • July 30th, 2008
  • 4:59 pm

Is one reason for my current inactivity. It seems to be shaping up to a REALLY GOOD event.

 Blackbox computing of A-infinity algebras

  • July 25th, 2008
  • 6:18 pm

The last of my thesis results has reached article form. The paper Blackbox computation of A-infinity algebras has now hit the arXiv and been submitted to the Kadeishvili Festschrift issue of the Georgian Mathematics Journal.

 Introduction to Algebraic Geometry (1 in a series)

  • February 21st, 2008
  • 12:33 pm

I’m growing embarrassed by my lack of understanding for the sheaf-theoretic approaches to algebraic (and differential) geometry. I’ve tried to deal with it several times before, and I’m currently reading up on Algebraic Geometry again to fill the void that the finished thesis, soon arriving travels and non-existent job application responses produce.

So, why not learn by teaching? It’s an approach that has been pretty darn good in the past. So I thought I’d write a sequence of posts on algebraic geometry, introducing what it’s supposed to be about and how the main viewpoints develop more or less naturally from the approaches taken.

Varieties

The basic objective of algebraic geometry is to study solution sets to systems of polynomial equations. That is, we take some set f_1,\dots,f_r of polynomials in some polynomial ring k[x_1,\dots,x_n] over some field k. And we write V(f_1,\dots,f_r) for the set of all simultaneous roots to all these polynomials:
V(f_1,\dots,f_r)=\{p\in k^n:f_1(p)=0, \dots, f_r(p)=0\}

 Thesis written

  • February 15th, 2008
  • 2:13 pm

In a mean push, these last two weeks my advisor has read three different drafts of my thesis. And I’ve worked on getting the corrections in quickly. The last push started yesterday, when I got a bunch of corrections in the morning, had the last draft ready at 4pm, and then sat reading it myself until 1am.

My advisor took it home with him, spent the evening on it, and had his batch of corrections in the morning.

Hence, today at 10-ish when I got myself in to the office, I had two batches of corrections in front of me, and a printer closing at 2pm. So I worked – and now, well, it’s done.

That’s it.

It’ll get printed.

Then read.

In May, we should get all the comments back from the external examiners.

 Still away

  • September 9th, 2007
  • 12:19 pm

However, I am enjoying the Scottish countryside and just – today – turned 3^3 years of age.

 Politics and absences

  • August 4th, 2007
  • 8:21 pm

First off, Alexander Borovik has been writing a couple of times about a REALLY nice-sounding mathematical village in Turkey.

And it turns out, the village got closed this summer, with the government officials citing “education without permission” as their reason to close it.

Alexander is sending a petition to the prime minister. You should sign it.

In other news, I’m currently just waiting for Monday to come along. Why Monday? Because that’s the day I’m going back to Stockholm again. Once there, I’ll spend a couple of weeks spending time with friends and family, and then I will go and vow fidelity and those other things. The 25th of August, in case you’re about to ask.

All in all, this means that posting will be sparse if existent until mid-September – when I arrive, fresh out of my honeyforthnight, to Sydney; where the Magma research group host me for some 5-odd weeks. There I expect to have office space, an internet connection and a computer.

 In-between times

  • July 17th, 2007
  • 12:25 pm

These are the times that eat my productivity. The times that ensure that entire days go by and I afterwards feel nothing have happened at all. These times that are too short for productive work – where I know from the beginning that I cannot sit down and do something – too little time for reading, for coding, for writing, for .. well .. anything. And yet, while trying to get through them, they are obviously too long. An hour here, an hour there, interspersed with lunch, then coffee, then a seminar, and all of a sudden out of an 8 hour workday, the only vaguely productive thing that got done was hearing the seminar.

Fragmentation kills my productivity. With a fragmented workday, I have the time available neatly chopped up in pieces of free time that fall in-between. That are too short, but yet cover almost the entire workday.

 Still no new blogging

  • June 28th, 2007
  • 3:38 pm

Too harried to blog.

Will miss this carnival.

Bugger.

 Response to Heath Raftery

  • February 9th, 2007
  • 11:57 pm

While I’m still on the subject of writing code with the PFP library, I may as well join in on a discussion that got pulled into the Carnival of Mathematics exposition.

Heath Raftery writes about weird probabilities in dice discussions, a problem very much reminiscent of the Monty Hall problem, both in the amount of controversy it generates when people discuss it, and also, it seems on at least half the people in the discussion so far, in how much the terms use end up confusing people.

So, in a comment to the Carnival post, the suggestion came from Alex, that a simulation be used to settle the whole question. And since I just wrote some things with PFP, I might as well write another!

The question, as posed by Heath, is

 Announcing the Carnival of Mathematics

  • February 2nd, 2007
  • 11:09 am

Alon Levy, over at Abstract Nonsense has just announced the first issue of a brand new Blog Carnival: the Carnival of Mathematics.

Go take a look. Submit your own blog posts. And then check it out in a week – the carnival is scheduled for the 9th.

 On religion

  • January 27th, 2007
  • 10:06 pm

I decided on a whim to look in at the Dilbertblog, where the top post at the moment has Scott Adams calling all atheists that discuss on the net irrational, using a rather neat strawman carbon copy of most discussions of faith between believers (i.e. mostly Christians) and atheists he has seen on the web.

At the end of it comes a question: supposing it could be established that there’s a truly infinitesimal (in the physical sense, not the mathematical) chance of a God existing – he quotes “one in a trillion” as a model probability; would it then be fair of an atheist to claim the non-existence to be proven?

 Retrospection 2006

  • December 30th, 2006
  • 7:31 pm

Inspired by other bloggers on Planet Haskell, I thought I’d just sit down and write a retrospection post, reviewing the past year – primarily from angles such as mathematics, computers and my generic life situation.

It divides neatly into two different sections: the months as a commercial programmer and the months as PhD student and academic careerist.

The year began still working for Teleca Systems, and with security consulting for Stockholm-based firms and frequent trips back home.

Then as the year went on and my PhD applications grew more and more, I started getting results. I got invited to Bonn for an interview with the Homology and Homotopy graduate school program – which was in the end turned down because I was more of a homological algebraist than a topologist. And the week after that, I was invited to Jena for an interview for a position doing PhD work on computational homological algebra. The interview went well, the potential advisor was nice (and a once-roleplaying gamer to sweeten the deal more) and I got the position just a few days later.

 An A-structure on the cohomology of D8

  • November 30th, 2006
  • 2:28 pm

As a first unknown (kinda, sorta, it still falls under the category of path algebra quotients treated by Keller) A-calculation, I shall find the A-structure of H^*(D_8,\mathbb F_2).

To do this, I fix the group algebra
\Lambda=\mathbb F_2[a,b]/(a^2,b^2,abab+baba)
and the cohomology ring
\Gamma=\mathbb F_2[x,y,z]/(xy)
with x,y\in\Gamma_1, z\in\Gamma_2

Furthermore, we pick a canonical nice resolution P, continuing the one I calculated previously. This has the i:th component Λi+1, and the differentials looking like
\begin{pmatrix}
a&0&bab&0&0&0\\
0&b&0&aba&0&0\\
0&0&a&0&bab&0\\
0&0&0&b&0&aba\\
0&0&0&0&a&b
\end{pmatrix}
for differentials starting in odd degree, and
\begin{pmatrix}
a&0&bab&0&0\\
0&b&0&aba&0\\
0&0&a&0&bab\\
0&0&0&b&aba
\end{pmatrix}
for differentials starting in even degree. The first few you can see on the previous calculation, or if you don’t want to bother, they are
\partial_0=\begin{pmatrix}a&b\end{pmatrix}
\partial_1=\begin{pmatrix}a&0&bab\\0&b&aba\end{pmatrix}
\partial_2=\begin{pmatrix}a&0&bab&0\\0&b&0&aba\\0&0&a&b\end{pmatrix}

Now, armed with this, we can get cracking. By lifting, we get canonical representating chain maps for x,y,z described, loosly, by the following:

x takes an element in \Lambda^{2k}, keeps the first, third, et.c. elements and throws out the even ordered elements; so x\cdot(a_1,a_2,a_3,a_4,a_5,a_6)=(a_1,0,a_3,0,a_5)
For an element in \Lambda^{2k+1}, the last element gets extra treatment, so
x\cdot(a_1,a_2,a_3,a_4,a_5,a_6,a_7)=(a_1,0,a_3,0,a_5,ab\cdot a_7)
For the lowest degrees, we also have
x_0 = \begin{pmatrix}1&0\end{pmatrix}
x_1 = \begin{pmatrix}1&0&0\\0&0&ab\end{pmatrix}
x_2 = \begin{pmatrix}1&0&0&0\\0&0&1&0\end{pmatrix}

 A-algebras and group cohomology

  • November 23rd, 2006
  • 3:48 pm

In which the author, after a long session sweating blood with his advisor, manages to calculate the A-structures on the cohomology algebras H^*(C_4,\mathbb F_2) and H^*(C_2\times C_2,\mathbb F_2).

We will find the A-structures on the group cohomology ring by establishing an A-quasi-isomorphism to the endomorphism dg-algebra of a resolution of the base field. We’ll write mi for operations on the group cohomology, and μi for operations on the endomorphism dg-algebra. The endomorphism dg-algebra has μ1=d and μ2=composition of maps, and all higher operations vanishing, in all our cases.

Elementary abelian 2-group

Let’s start with the easy case. Following to a certain the notation used in Dag Madsen’s PhD thesis appendix (the Canonical Source of the A-structures of cyclic group cohomology algebras), and the recipe given in A-infinity algebras in representation theory, we may start by stating what we know as we start:

 Why Blog?

  • November 16th, 2006
  • 4:38 pm

The Community College Dean has written about why he blogs, and asks any and all readers to tack on to his effort.

My blog is not very anonymous. It is occasionally personal, occasionally political and throughout a venting location for thoughts, and a place where I formulate myself in higher detail – so to speak a scratchpad, but public enough for me to allow others to read it.

I write it to formulate my own thoughts further, find possible errors, start discussions, or just jot down the viewpoints that illuminated some point of some argument for me. I do it in public because I thouroughly enjoy the conversations it sparks.

 A for the layman

  • November 7th, 2006
  • 4:18 pm

I recently had reason to describe my PhD work in complete laymans terms while writing letters to my grandparents. This being a good thing to do in order to digest your ideas properly, I thought I might try and write it up here as well.

It will, however, push through some 100-odd years of mathematical development rather swiftly. Try to keep up – I will keep it as light as I can while not losing what I want to say.

Algebra

In the 19th century, a number of different mathematical efforts ended up using more or less precisely the same structures, though not really recognizing that they were the same. This recognition came with Cayley, who first brought the first abstract definition of a group.

A group is a set G of elements, with a binary operation *, such that the following relations hold:

 Prototyping thought

  • October 28th, 2006
  • 9:43 pm

In a recent post, pozorvlak reminded me of one of the reason it is important to have a good, obvious, and quick-to-write programming language around.

He, as I, is a mathematician, spending his time thinking, finding patterns, and trying to formulate (more or less) absolute proof that his patterns hold all the time, alternatively ways to demonstrate that they may not be universal.

In the post linked above, he starts by a neat little exercise, gets interested, and goes out to look at more examples. These show a very clear pattern, and after following this pattern quite some way out, he finally believes the pattern enough to start searching for a proof: which he also finds.

 Weekly Report: Parties and lectures

  • October 22nd, 2006
  • 11:05 am

The term has started. In full force. No seating in the lunch cafeteria, lot’s of people all over the place, lot’s and lot’s of new students, and lectures and examples classes kicking off all over the place.

I’m leading an example class this year: linear algebra and geometry part 1 for the maths majors. One of six different examples class sessions for the same course. And apparently, my good tradition of going out drinking with my students keeps up: I went to the exchange students term-start party last friday, and while partying with the swedes and finns of the scandinavian Stammtisch on the dance floor, a girl squeezes through the crowds past us and asks me in passing if I’m not the examples class teacher. Turns out she registered for my class.

First contact with the students is on tuesday morning.

 A-infinity and Hochschild cocycles

  • October 20th, 2006
  • 3:15 pm

This blogpost is a running log of my thoughts while reading a couple of papers by Bernhard Keller. I recommend anyone reading this and feeling interest to hit the arXiv and search for his introductions to A-algebras. Especially math.RA/9910179 serves as a basis for this post.

If you do enough of a particular brand of homotopy theory, you’ll sooner or later encounter algebras that occur somewhat naturally, but which aren’t necessarily associative as such, but rather only associative up to homotopy. The first obvious example is that of a loop space, viewed as a group: associativity only holds after you impose equivalence between homotopic loops.

 Computational Group Theory in Haskell (1 in a series)

  • October 18th, 2006
  • 3:37 pm

This term, I’m listening to a lecture course on Computational Group Theory. As a good exercise, I plan to implement everything we talk about as Haskell functions as well.

The first lecture was mainly an introduction to the area, ending with a very na

 Academic firsts

  • October 10th, 2006
  • 12:22 pm

I just submitted a paper to a journal.

Based on research I have done during my time as a PhD student.

Wish me luck.

Update:If you want to read the paper, I suggest you go look at arXiv:math.GR/0610374.

 Weekly Report: Settling down again

  • October 8th, 2006
  • 11:08 am

I get the feeling that my pledge to write the weekly reports regularily has been less than successful. So I’ll try to renew that pledge: I shall try to keep up the regularity of my weekly report.

Since last authored, I have been running a mathematics camp for 10th grade kids in mathematics-oriented schools. There are (apparently) 3 or 4 of those in Th

 OpenGL programming in Haskell, a tutorial (Part 2)

  • September 19th, 2006
  • 5:55 pm

As we left off the last installment, we were just about capable to open up a window, and draw some basic things in it by giving coordinate lists to the command renderPrimitive. The programs we built suffered under a couple of very infringing and ugly restraints when we wrote them – for one, they weren’t really very modularized. The code would have been much clearer had we farmed out important subtasks on other modules. For another, we never even considered the fact that some manipulations would not necessarily be good to do on the entire picture.

Some modules

To deal with the first problem, let’s break apart our program a little bit, forming several more or less independent code files linked together to form a whole.

First off, HelloWorld.hs – containing a very generic program skeleton. We will use our module Bindings to setup everything else we might need, and tie them to the callbacks.

 Hello, Planet Haskell

  • September 14th, 2006
  • 5:28 pm

Since the content rate of haskell-related posts is going up, the feed of this blog will get added to Planet Haskell. Hi, Planet!

 OpenGL programming in Haskell – a tutorial (part 1)

  • September 14th, 2006
  • 4:17 pm

After having failed following the googled tutorial in HOpenGL programming, I thought I’d write down the steps I actually can get to work in a tutorial-like fashion. It may be a good idea to read this in parallell to the tutorial linked, since Panitz actually brings a lot of good explanations, even though his syntax isn’t up to speed with the latest HOpenGL at all points.

Hello World

First of all, we’ll want to load the OpenGL libraries, throw up a window, and generally get to grips with what needs to be done to get a program running at all.

import Graphics.Rendering.OpenGL
import Graphics.UI.GLUT

main = do
  (progname, _) <- getArgsAndInitialize
  createWindow "Hello World"
  mainLoop
 

This code throws up a window, with a given title. Nothing more happens, though. This is the skeleton that we’ll be building on to. Save it to HelloWorld.hs and compile it by running

ghc -package GLUT HelloWorld.hs -o HelloWorld

 Monthly Report: Conference summer draws to an end

  • September 11th, 2006
  • 10:07 pm

I haven’t really been updating much here – and especially not the category Weekly Report. Slowly, it’s time to get around to it.

Now, there is a specific reason updates have been slow: I’ve been travelling. A lot. With very varying internet access and even more varying energy to spare for writing. It all started with two weeks of vacation in Sweden – spending time with my lovely fiancee, meeting old friends, and generally relaxing. She proposed (of sorts), and we’re getting married next summer. After the vacation, I went to Leeds, to the Triangulated Categories workshop, and then back home to Jena – only to go off again within just over a week, for the First Copenhagen Topology Conference, tightly followed by a master’s class in Morse theory lead by Ralph Cohen, and a simultaneous workshop on Morse theory and string topology.

 Localisation and ring depth

  • September 5th, 2006
  • 1:24 pm

So, we’re back at the point where I’m hesitating whether what I tried to work out even made sense or not. So I’ll do a write up of all the things I feel certain about asserting, and ask my loyal readership to hunt my errors for me. :)

Don’t laugh. This is less embarrassing for me than asking my advisor point blank.

We say that a (graded) commutative ring R has depth k if we can find a sequence of elements x_1,\dots,x_k with x_1 not a zero-divisor, each x_i not a zero-divisor in the quotient R/\langle x_1,\dots,x_{i-1}\rangle and R/\langle x_1,\dots,x_k\rangle a ring without non-zero divisors. This definition, of course, being the first obvious point where I may have screwed up.

Now, we know (from looking it up in Atiyah-MacDonald), that for SR the localisation of R in a multiplicatively closed subset S, S(R/I)=SR/SI, that injections carry over to injections, and that the annihilator over SR of an element is the localisation of the annihilator of the element.

 Carry bits and group cohomology

  • July 27th, 2006
  • 4:05 pm

Got treated today to a really nice workout in group cohomology; most of which is well worth sharing, since seeing it done once gave me a lot of insight.

So, if we pick \mathbb Z/10 and view it as the set 0,1,2,3,4,5,6,7,8,9 and with the group operation given by a*b = a+b % 10, then one standard 2-cocycle is the function
f(a,b) = \begin{cases}1&a+b\geq10\\0&\text{else}\end{cases}
That this actually does form a cocycle would be the same as requiring
f(b,c)-f(a*b,c)+f(a,b*c)-f(a,b)=0
or regrouped
f(a*b,c)+f(a,b)=f(a,b*c)+f(b,c)
which is to say that the number of carry bits generated when adding three digits does not depend on associativity.

This cocycle classifies the group extension
0 \to \mathbb Z/10 \to \mathbb Z/100 \to \mathbb Z/10 \to 0
with the first map taking a+10\mathbb Z\mapsto 10a+100\mathbb Z and the second taking b+100\mathbb Z\mapsto b+10\mathbb Z

Now, this is a nontrivial extension – which is equivalent to it not being a coboundary – by the following calculation:
Suppose f=dg. Then f(a,b)=g(a)+g(b)-g(a*b). So, since f(0,0)=0, we get g(0)-g(0)+g(0)=0, so g(0)=0. For any b≤8, we also get 0=f(1,b)=g(b)-g(b+1)+g(1), so g(b+1)=g(b)+g(1) and thus by induction, g(b)=bg(1) for all 0≤b≤9.
But, now, 1=f(1,9)=g(9)-g(0)+g(1)=10g(1)=0, which is a contradiction.

 Todo and accomplishments

  • July 24th, 2006
  • 2:55 pm

Accomplished:

  • I am done with the coursework for the past semester. Sent off the TeXed up solution sheets to the webmaster today.
  • My pattern observation seems to hold up surprisingly well – there seems to be a theorem to fetch out there somewhere.
  • I have done most of the dishes. Go me!

Todo:

  • FOCUS! I need to learn triangulated categories. Preferably now. I need to stop playing with Haskell and reading up on group cohomology calculations. Preferably now.
  • After triangulated categories, there’s a wealth of things to look into. High priority are spectral sequences, further group cohomology, diamond lemma, path algebra quotients, A, Massey products, return to model categories. Which order these are done might influence the contents of my PhD thesis significantly.
  • I really need to talk to the university sysadmins about the WLan network.

Progress may be found. Just around the corner. I need a donut.