This page (and the information on it) is obsolete. Do not use the Arch trees any more--they will go away soon. Please head over to my source control page for the latest and greatest.
This page lists my arch trees, along with their contents. To use these trees, get a copy of baz and type
baz register-archive http://tiker.net/archives/*year*-public
After that, you can get the newest version of the software by saying
baz get inform@REMOVETHIStiker.net--*year*-public/*category*--*branch*--*version*
Note that clicking the links in your browser gives you a
403 Forbidden HTTP error. This is intentional.
baz can access these trees just fine.
This repository can be found at http://tiker.net/archives/2006-public. It currently contains this:
fempy fempy--mainline fempy--mainline--1.0 base-0 fempy-suite fempy-suite--mainline fempy-suite--mainline--1.0 base-0 pyangle pyangle--mainline pyangle--mainline--1.0 base-0 pylinear pylinear--mainline pylinear--mainline--1.0 base-0 .. patch-1 pymbolic pymbolic--mainline pymbolic--mainline--1.0 base-0 pytools pytools--mainline pytools--mainline--1.0 base-0 tagpy tagpy--mainline tagpy--mainline--0 base-0 .. patch-1
Stuff will branch over from the 2005 tree as time goes by and changes are made.
This repository can be found at http://tiker.net/archives/2005-public. It currently contains this:
aufschrieb aufschrieb--mainline aufschrieb--mainline--0.0 base-0 .. patch-2 clockwork clockwork--mainline clockwork--mainline--0.0 base-0 .. patch-2 clockwork--releases clockwork--releases--1.0 base-0 fempy fempy--mainline fempy--mainline--1.0 base-0 .. patch-1 find-the-word find-the-word--mainline find-the-word--mainline--1.0 base-0 ixlib ixlib--mainline ixlib--mainline--1.0 base-0 .. patch-3 madman madman--production madman--production--1.0 base-0 .. patch-37 ocaml-library ocaml-library--mainline ocaml-library--mainline--0.0 base-0 pyangle pyangle--mainline pyangle--mainline--1.0 base-0 pylinear pylinear--mainline pylinear--mainline--1.0 base-0 .. patch-8 sdlucid sdlucid--releases sdlucid--releases--0.91 base-0 .. patch-1 tagpy tagpy--mainline tagpy--mainline--0 base-0 .. patch-7 tagpy--releases tagpy--releases--0.90 base-0 tvinfo-ripper tvinfo-ripper--mainline tvinfo-ripper--mainline--0.0 base-0 wgwam wgwam--mainline wgwam--mainline--1.0 base-0
This repository is now closed.
This repository can be found at http://tiker.net/archives/2004-public. It currently contains the following trees:
madman madman--production madman--production--1.0 base-0 .. patch-24 mide mide--mainline mide--mainline--1.0 base-0 pyangle pyangle--mainline pyangle--mainline--1.0 base-0 pylinear pylinear--mainline pylinear--mainline--1.0 base-0 .. patch-1 pyrecious pyrecious--mainline pyrecious--mainline--1.0 base-0 .. patch-1 sokoban-solver sokoban-solver--mainline sokoban-solver--mainline--1.0 base-0 .. patch-7 wgwam wgwam--mainline wgwam--mainline--1.0 base-0 .. patch-5
This repository is now closed.
I've been molding this site according to my publishing needs, and in the process of doing so, I've ventured into the Drupal source code. I've made a few changes that I believe are generally useful. Besides submitting them to the respective maintainers, I'll post them here for added accessibility.
I've modified the Drupal core to provide "Clean URLs" without needing proper
mod_rewrite support. Instead, you only need to be allowed set the
ErrorDocument to the provided
404.php page. There is a slight complication that the implementation handles properly: HTML forms submitted via HTTP POST cannot use these clean URLs since the form data does not propagate through the ErrorDocument redirection. This NOT FOUND: drupal-4.5.1-clean404-2005-01-04-v3.patch=patch against version 4.5.1 of Drupal implements this. (upstream)
Update 1: It turns out that my web hosting company, Alturo, does support this. In order to enable it, you need to say
RewriteBase / in
.htaccess. They do not document that, though. (In general, they document fairly little.) As a result of this, I won't be maintaining the Clean-URLs-via-404 patch.
Update 2: I've put a modified version of the patch onto the Drupal bug tracker that applies to current Drupal CVS.
I've modified and fixed
inline.module in several ways in this NOT FOUND: inline-2005-01-04-v1.patch=patch: (upstream)
[ inline:filename.ext]instead of only the number, for added link stability.
atags. Those are gone.
[ inline:...]. If you say
[ file:my.png], this will remain a file link.
inline.modulefrom picking up these example links.)
mide is a minimal IDE born out of the need to automate the build-test-edit cycle. Its user interface should be pretty self-explanatory: Enter a make command, hit f9, wait, double click on an error message, correct the error, repeat. To compile it, you need Qt version 3 along with the uic. (Qt 2 should work, I haven't tested that. If you do, please let me know.)
A simple "make" should be enough for building, you might have to adjust the Makefile a bit (this works fine for my debian system). Installation is even easier: Copy "mide" and "mide-backend" to your path, that's it. mide-backend is a script that takes care of invoking the correct editor backends. It receives the following arguments:
mide-backend save <i>backend</i> mide-backend open <i>backend</i> </i>file</i> mide-backend position <i>backend</i> <i>file</i> <i>line</i>
Currently, only the NEdit backend works, and even for this to work, you need a patch to nedit which is included in the distribution. If you implement more editors, please send me the appropriate snippets of mide-backend. mide will have some zombie processes in most cases, which will go away when mide dies, this is a design limitation in Qt that's hard to work around, sorry.
Hey, and look: It's even version 1.1 now. Version 1.1 adds correct handling of warnings and tooltips containing the error on examine.
You may download the latest version from my software repository.
The current arch tree is called
So, I was wasting time before going to bed last night, like, by setting up this site, and by playing Sokoban. KSokoboan to be precise. Now, I made it up to level 12 of David W. Skinner's Microban level set, which is rightfully said to be pretty easy. Well, level 12 wasn't, at least not to me. (I admit that that's embarassing, but who cares.)
So, I made it to the "I can prove this unsolvable" stage of puzzle solving. But since I reckoned that someone would have noticed that this level is unsolvable, my mind immediately went to cheating. Unfortunately, nobody had published move sequences to solve Microban. I was absolutely clueless as to how this level might be solvable, and I just had to know. So, I wrote a Python program to solve Sokoban levels. You'll find sokosolve.py and a few demo levels in the sokoban-solver module of my 2004-public arch tree.
The program itself has two nested applications of A*, a usable (but half-baked) heuristic and a complete game model. In just 215 lines. Python never fails to impress me. Attached to this story you can see a dump of the program solving the level that had me so confused.
I've written a fair bunch of software related to my research:
Most of my software these days has to do with research:
hedge is an unstructured, high-order, parallel Discontinuous Galerkin (DG) code. Its design is focused on two things: being fast and easy to use. While computational efficiency dictates implementation in a low level language, these same low-level languages become quite cumbersome at a higher level of abstraction. This is where the “h” in hedge comes from; it takes a hybrid approach. It allows the user to specify a DG operator in a high-level, mathematically oriented language and then worries about the details of applying this operator in a matrix-free fashion across a wide array of execution environments, including CPUs, GPUs, and MPI-based clusters of CPUs and GPUs. Available under the terms of the MIT license.
PyOpenCL makes the industry-standard OpenCL compute abstraction accessible from Python. It features automatic cleanup functionality and tight integration with Numpy. In the same spirit as PyCUDA, rather than being merely a nice interface, it aims to enable a new, generative style of programming. Available under the terms of the MIT license.
PyCUDA makes the Nvidia CUDA compute abstraction accessible from Python. It features automatic cleanup functionality and tight integration with Numpy. But rather than merely a nice interface to CUDA, it aims to enable a new, generative style of GPU programming. It further contains a GPU-based array package and building blocks for common vectorial and reductive operations. Available under the terms of the MIT license.
CodePy is a CPU metaprogramming toolkit that supports compilation of C code at runtime and enables dynamic linking of generated code into a running Python instance. Available under the terms of the MIT license.
Python bindings for existing software
isl, which is under the LGPL.
Small "tool" packages
Distributing other people's work
Not directly related to research, but still fun: