I've uploaded FemPy to my arch repository for your perusal. A release is coming soon.
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.img and a tags. Those are gone.[ inline:...]. If you say [ file:my.png], this will remain a file link.inline.module from 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 mide--mainline--1.0.
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.
**CGen allows syntax-tree-based generation of C/C++/OpenCL/CUDA source code. 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: