Skip to content

Compiling tpserver-cpp under windows – Part 2

Well it’s finally done. I managed to get tpserver-cpp to compile under Windows. I just need to fix a few things and then I’ll upload “unsupported” binaries.

Here is a picture of it all working!

Compiling tpserver-cpp under windows.

I had hoped that compiling tpserver-cpp under windows would be easy. Turns out I was very, very wrong. I am even going the easy route of using Cygwin to handle all the select/signal/pthread stuff which wouldn’t work easily under Microsoft products.

Compiling it was relatively easy once I had all the dependencies installed. Cygwin comes out of the box with guile (1.6 and 1.8) which was the only dependency I was concerned about. (Everything else is pretty standard.)

However, this is where I ran into a problem. The server uses shared libraries to contain important modules like game rule data and persistence. This doesn’t work to well under Windows. At first I should it should just be an easy step of convincing the autotools to build .dll versions of the modules. Turns out dll’s aren’t at all like .so files. They have to have “no unresolved symbols” which makes it very hard to do what tpserver-cpp does (IE modules use the core functions in the main server like the logger).

Next step was to find out what other applications did, I found this library made by libtool guys called ‘libltdl’ which lets you “fake” dlopen stuff. So I “ported” tpserver-cpp to use this instead of just a raw dlopen. (This should also make tpserver-cpp more portable to such weird operating systems as BeOS and HPUX.) Dunno if Lee will like it or not 🙂

Still not done yet but it’s looking much more hopeful.

Swap Nice?

It would be nice if you could say “swap out these applications at a last choice”.

The main reason for this is that I use the deskbar application quite a lot. I would really like the system not to swap it out so that it is always really responsive.

Searching google doesn’t turn up anything all that useful. I did recently find memlockd which would be quite useful for Servers.

Resume

Gnome Improvements

Here are a bunch of things which I would love to see added to gnome to make it much easier for me to use.

  • Add the ability to drag around the items in the task bar like you can in the tabs in the browser
  • Add the ability to lock panels so you can’t drag them about

    This is needed because when the computer gets loaded the mouse interprets the clicks as click and drag. It is also a problem were people aren’t skilled with the mouse (IE hold and drag the item). The means panel ends up getting dragged about. I have the same frustration under older versions of windows.

  • Network applets should display information about the connection status in tool tip (IE IP Address/essid/etc)

    Everything else seems to display useful information. The CPU applet displays the current CPU speed. The laptop temp applet displays the current temperature. Why doesn’t the network applets show the current configuration?

  • Memory improvements, I know gnome is already working on this but 256MB is painful to use.

    Recently the 512MB stick of ram in my laptop died. This means that I’m currently restricted to 256MB of ram. Gnome positively sucks with this much ram. This is annoying because XP runs quite nicely with this amount.

    Evolution and Epiphany are the to biggest hogs but all the other little things really add up. Disabling the SPAM filtering in Evolution seems to have make a fairly big difference.

    Not to mention my video card has to steal main memory (It’s a Intel i855, I have to restricted to 32mb).

    To make matters even worse I have a very very slow hard drive (4200rpm, 1.5 Inch drive) this makes swapping even more painful then most people.

  • Disk access improvements, things seem to access the disk a lot more then needed.

    My hard drive seems to do a lot of work even when not swapping. Doing a “echo 1 > /proc/sys/vm/block_dump” shows that a lot of things are accessing the hard drive when they are idle or not doing anything.

    The hard drive is one of the biggest consumers of battery life in the laptop. Reducing the accesses would make everything faster. I guess this is counter reducing memory usage however.

Linux.conf.au Proposal Suggestions

Firstly, every LCA (linux.conf.au) I have been to has been really brilliant. I’ve been to 6 other conferences and LCA is my definite favourite. I think that for the conference to be this consistently good, there must be because of a huge effort by the organisers and LA.

I’m interested to find out if any of the following suggestions have been considered and why they have possibly been discarded? I’m sure there are obvious reasons I have missed because I have never been part of either the LA committee or the LCA organisers.

A possible “People Choice” track. This would be a track were the talks are selected by the LA members directly. The biggest problem with this type of selection is that it can rapidly turn into a popularity contest. I think this would however be a good way for the LCA committee to check that they are actually providing what people want, by looking at what people are actually voting for.

Why are the submissions not publicly accessible? Having public submissions would have numerous benefits,

  • People would be able to compare their own submissions to others and self evaluate their quality
  • Allows the community to check the proposals for correctness (IE Person A has actually been involved with projects they say they are)
  • Allows the community to see all the cool stuff which missed out on being in the conference
  • Allows the community to make sure that the committee is not “playing favorites” (not that I believe that they ever would)

The proposals had to be submitted under an Open Source license anyway so that should not be a problem.

From people’s blogs I know that you only get about 5 minutes per submission. This doesn’t give you much time to write any type of feedback. However, I think a big part of any learning process is getting feedback on your work. A good start would be a set of check boxes which say something like:

  • The content of this talk is not related to the conference
  • The content is of proprietary nature
  • The content is still too immature
  • Could not find more information on content
  • Not enough information for informed decision
  • Proposal to long, not enough time to read whole thing
  • Not enough specific detail
  • Speaker doesn’t have enough experience speaking
  • Talk better suited for a Miniconf
  • Talk by other speaker already covered the content
  • etc….

On another feedback note, during the conference it would be nice if there was a way to provide feedback on the talks you attend. I seem to remember there being something similar to this in the past but my memory is failing me.