Category: Software

  • Mixing boost versions –as-needed

    Some linux distributions defaulted to use the –as-needed linker flag for a while. Ubuntu tried it in natty, but then reverted. Now with oneiric, it really is enabled by default.

    I ran into this when one of my packages wouldn’t compile on oneiric. I always got linker errors with boost::filesystem and boost::system. Between natty and oneiric, the default version of the packaged libboost changed from 1.42 to 1.46, thus switching from filesystem v2 to v3. Obviously my first thought was that it must have to do with that. Also libwt which I use in the project had the same error in a previous version. So, I reduced my app until I was sure that couldn’t be the cause here. Also all my other packages didn’t have any problems with the transition to filesystem v3 apart from the regular changes for adapting to the new interfaces. But for these changes the compiler helps.

    The project in question is organised more or less like that:

    (more…)

  • Best names for algorithms

    I’ve worked in Baar for two months now and I go to work by train. It takes a while longer than to Schwyz as before, but I don’t have to switch trains or busses. That means it’s good for reading. Currently I read “Artificial Intelligence: A Modern Approach” which is accompanying an online curse (ai-class.com from Stanford) that I currently attend. Today I was reading in the chapter about neuronal networks. There it describes an algorithm called “optimal brain damage“. It tries to find an optimal topology for the NN by randomly cutting connections from an initially fully connected NN.While it describes adequately what the algorithm does, it struck me awkwardly when I first read the name.

    What are the best names for algorithms you have come across?

    (more…)

  • Time Tracking with RFID on BORM ERP

    Before I discovered what my Bifferboard really is, I almost disposed it, but now It found a new purpose. It’s a networked rfid Terminal for time tracking on our BORM ERP. I use a simple python script on the device because it’s easier to experiment on a device where I would rather not compile too much every time trying something. In fact, this is my first python project appart from looking through some scripts and changing a few lines here and there.

    (more…)

  • Make an RFID tag with an AtTiny and a coil

    When I stumbled across this blog post, I was sure I have to try this at home. I had some interest in RFID for a while, but the Proxmark was too pricy for me just to play with. So this experiment came just right.

    The attiny85’s were difficult to get in Switzerland, so I ordered them from Germany along with an ISP programmer. I think it would also work with other AtTiny’s for example the 45 is available from Conrad. The hex file is just 1.7 kB, so the AtTiny45 should suffice.

    (more…)

  • Running debian on a nas dongle [updated]

    I used a nas dongle from ARP for a while to share an USB harddisk, and I always wondered about what’s inside. It’s a nifty little device that works reasonably well. It needed a reboot from time to time, and it had some issues with the filesystem. Because of the FAT filesystem it couldn’t store large files, but what I missed most was ssh. Not ssh itself, but scp, sftp and rsync. I knew that without further information it would be impossible to add these. But so far I couldn’t find out anything on the internet. Then somehow I found a blog post with a device that looked similar from the outside but was sold more like a hacker device. So I went to figure out if it’s the same. It looked similar from the inside as well. So, it is probably really a bifferboard. The pins for the serial console matched, which was even more proof…

    The boot messages with the stock firmware look like this:  $ minicom -b 115200 -D /dev/ttyUSB0

    (more…)

  • Rendering Text in WebGL

    Just like OpenGL and most rendering engines that I know of, WebGL has no builtin support for text rendering. And on top of that, I can’t use the approach we use in PointLine at the moment. PointLine gets the outlines for the characters from the Windows GDI. So I was looking for something cross platform.

    Searching on the internet there are two main approaches:

    1. Render the alphabet or the word in question to an image, and then use that image to texture some triangles.
    2. Trace the outlines of the characters and triangulate the polygons.

    Although I prefer the second approach, I found an example of the first that looked simple enough on nehe. It was based on FreeType and for OpenGL.  I started converting it to WebGL, but it was not as easy as it looked. It makes heavy use of display lists which are not available in WebGL.

    So I looked further, and found the FTGL library which is also based on FreeType. It sounded like just what I need, but for OpenGL. So, I extended the library to allow me to extract the triangles for processing in WebGL. I sent my patch to the FTGL developers and hope for inclusion.

    Meanwhile I can render texts in WebGL with my modified version of FTGL …  of course it’s only so easy to do when using Wt::WGLWidget from the excellent witty library.

    Here is my research prototype which now has text.

    Here are the important parts of how it’s done with the modified libftgl:

    (more…)

  • Is Windows 7 based on MS DOS?

    Yesterday I copied an InstallAware Project on the Jenkins continuous integration server. The copy always failed to build while the original succeeded. They were really the same at this point, so WTF!!!

    In the InstallAware forum I found out that the path name was getting too long. Well, yes, the name of the copied jenkins project was slightly longer and thus the resulting path had some more characters.

    In the installaware forum they say that Windows still has a limit of 256 character for absolute paths. According to Wikipedia, the limitation doesn’t come from the filesystem. So it must be somewhere in the OS. Now, Microsoft told us that WindowsNT which Windows7 is based on, was no longer based on MS DOS. Were they lying? I mean, this is a 64 bit operating system with limitations from its 16 bit pre-pre-pre-pre-predecessor….

    A co worker ran into the same limitation lately when trying to copy a folder structure from linux to Windows.

  • PointLineWeb research prototype

    Google employees can spend 20% of their working time for their own projects. We at cubx (The CAD development department recently split from BORM) have now something similar. We get to spend every second friday afternoon for some projects of our own. The only restriction is that it has to do with computer graphics.

    I chose a project that I had in mind for almost as long as I have been working for BORM. I wanted to run PointLine as a web service on a linux box. Wit the old core, that was so tightly tied to MFC, this would have been impossible. But the new unfinished core is designed to be platform independent. So, I took it as a base.

    Some three years ago, I looked at vrml and x3d for the 3d in browser part. These standards didn’t have as broad support as I thought. You couldn’t do much without buying proprietary browser plugins. So I never made much progress on that. But then came WebGL. All mayor Browsers support it natively, and on top  of that, my favourite web application framework recently got a WebGl widget.

    So far, my research prototype doesn’t do much, but I already learned a lot that I can also use in my everyday work. I gained a better understanding of rendering pipelines, learned about shaders and ray picking …

    As a side project, I set up a jenkins continous integration server that compiles the project on ubuntu and windows after every commit. Additionally, I learned about CPack, so that the result of the jenkins build is a binary deb package ready to install.

    You can see the web application as it progresses here:

    http://webglcad.ulrichard.ch

    Usually, I would also provide a link to the sources, but this is closed source, sorry…

  • Accepting BitCoin

    As of today, we accept BitCoin as payment method for our tandem flights at paraeasy.ch

    BitCoin is a decentralized online currency. It was in the news lately. While banks and politicians made it sound bad, it’s actually a great experiment. True, it has some shortcomings, but these shouldn’t bother us for the next couple of years.

    If you want to learn more about BitCoin, check out these podcasts:

    http://chaosradio.ccc.de/cr169.html

    http://linuxoutlaws.com/podcast/215

    http://chaosradio.ccc.de/cre182.html

    http://www.weusecoins.com/

  • New Server

    The Alix served well for the last two years as my webserver, but then I decided, now it’s time for something a little more beefy. I’m in the process of migrating everything to the new server.

    With the new server, I move everything to my http://ulrichard.ch domain.

    (more…)