Gentoo, Haskell, LXDE, Uni, Xfce, XMonad

Honours + LXDE

In this post, I’m going to discuss the status of my Haskell-oriented Mathematics Honours thesis, as well as the new Desktop Environment I’m using.

Honours Thesis

On Monday night (OK, about 2:30 AM Tuesday morning :p ) I finally finished the draft of my Honours Thesis, entitled “Graph-Theoretic Analysis of the Relationships in Discrete Data”. As part of this thesis, I wrote the Graphalyze library to assist programmers analyse discrete data using graph theory, as well as the SourceGraph programme to analyse Haskell source code. I also did a talk on this: the slides I used are available here.

I’m going to make a full, proper (and revised) announcement of the latest versions of the software after I submit the final version on Monday. However, I’d really appreciate any Haskellers reading this (indeed, anyone at all) to glance over my draft, especially in Section 3 where I talk about Haskell: my supervisor can check the mathematics side of things, but he’s a C programmer and the only thing he knows about Haskell are 1) it’s the same as Scheme (he thinks) and 2) I’m obsessed with it :p.

There are a few changes I’m going to make to it still: I want to fix a couple of extra bugs in the code that I’ve found (I noticed whilst writing the draft that somehow the root, leaf and singleton node finding functions were all identical, due to overzealous copy-pasting :s ), and I’m going to replace the XMonad example in the appendix with the analysis of the actual code I wrote.

LXDE

Speaking of XMonad, up until yesterday I’ve been using it within Xfce (for which I’ve done up a wiki guide). However, I’ve become aware recently of the Lightweight X11 Desktop Environment or LXDE. I was using Xfce because I wanted the convenience of a DE without the bloat of Gnome or KDE (which I personally can’t stand anyway). Well, Xfce is a wallowing pig compared to LXDE: I was amazed when LXDE loaded almost instantly on first boot! It mightn’t have anywhere near feature list of Xfce, but to be honest I wasn’t using most of them anyway.

I installed LXDE from the official Gentoo overlay (available via [p]layman). At the moment I’m only using the released versions, though after I finish this post I might upgrade to the live versions (hey, I’m already using live XMonad, Emacs and beta Xfce, so why not? :p ). I’ll do a wiki article on using XMonad within it on the Haskell wiki in the next day or so (the configuration of which I’ve been hashing out with sereven on #xmonad). However, since LXDE is basically a bunch of apps all thrown together that are fully available seperately (unlike the other DEs), it’s relatively straightforward to replace the default WM – Openbox – with XMonad).

There are a couple of things that are still annoying me with LXDE though, but I’m hoping that they’ll soon be fixed:

  • Multi-head support: despite having probably the best XRandr GUI around, other parts of LXDE aren’t multi-head aware. In particular, the panel stretches across all screens, so to restrict it to one screen I’ve had to remove quite a few items and keep it on the left rather than centred like I had Xfce’s panel.
  • Quality of plugins: this is probably more of a time issue more than anything else, but I found Xfce’s GUI monitoring panel plugins more informative.
  • Menu logouts: for some reason, clicking “logout” from the panel menu just restarts the menu (which does Bad Things (TM) for systray-dependent apps like nm-applet and amsn). I can’t seem to get it using lxsession-logout, which is quite nice (but I normally use XMonad to logout anyway, so it’s not that big a deal).
  • No session management: I’ve become almost dependent upon Xfce’s session support remembering all the apps I had open previously: with it, I haven’t bothered with getting suspend or hibernation working, since everything I wanted was already opened. However, it seems that LXDE’s session management utility is broken, and the lxsession-lite version only works for starting apps, not remembering them. I’ve heard that smproxy from Xorg can alleviate this.
  • The terminal: probably another time issue, but lxterm isn’t very configurable and has a very small memory. I’m sticking with Xfce’s Terminal for now.
  • PCManFM: This is almost the one component that LXDE can’t do without. I don’t really have any complaints with it per-se, I’ve just got to get used to it instead of Thunar, though I wish there was a way I could disable Desktop icons but still let it set the wallpaper.

Most of these issues are probably just due to the newness of the project. Nevertheless, most of these are either bearable or have workable alternatives. As it stands, I’m sold: I installed LXDE thinking it would be a good backup DE/WM (in case I ever b0rk Xfce), but instead it’s become my main DE!

Standard

5 thoughts on “Honours + LXDE

  1. Imam Tashdid ul Alam says:

    another fellow aussie interested in Haskell, eh?
    I just had a quick read (section 3) and I honestly don’t think the lazy evaluation issue is clear AND that it needs this much attention here. since it’s a maths thesis you would lose your reader right where you are talking about sum [1..]. just say that the language evaluates a value only when it is needed and remembers it as an unevaluated expression until then but purity makes it possible not to care about when it is evaluated.
    by the way, by LaTeX is rusty. how do you do those nice line numbers? [your text should read “line 8” where you are saying “line 9” though]

  2. ivanmiljenovic says:

    Thanks for that, I’ll re-do the lazy evaluation bit then (the main reason I brought it up was that the HOnours co-ordinator knows a bit about Haskell, but only enough to be surprised that I could get anything done with the laziness; also, I mention it again later on when I use Tying the Knot).

    As for line numbers… that’s a feature of the Listings environment, so I didn’t number any of it myself ;-).

  3. If you wish to use map as an example in Section 3.2.1 you may want to note that in the type signature, [] represents a List. It also introduces type variables and that will probably be confusing for non-Haskell readers.

    I guess the challenge is how much you want to talk about Haskell vs the maths. 🙂

  4. ivanmiljenovic says:

    Well, my supervisor just told me today that he’s not going to bother reading the Haskell section that thoroughly nor all the code snippets, which is kinda annoying especially after the effort I put in to simplify those snippets right back :s

  5. Pingback: Graph Theoretic Analysis of Relationships within Discrete Data « <<Insert Name Here>>

Leave a comment