Software
    RPM Packages
    List of RPM Packages and apt repository will follow.
    iWear Packages
    List of iWear RPM and Debian packages as well as the apt repositories will follow.
    Other Packages
    My personal projects will come here.
    PostgreSQL for Mediawiki
    I have patched the current mediawiki CVS version to include PostgreSQL
    support. I keep it in my personal svn and will put here snapshots
    periodically.
    
    Since the mediawiki developers not only refuse to help getting postgres
    support in, they also try to make it as hard as possible for anyone else to
    provide patches. E.g. they insist on using sql syntax that only mysql
    supports, not allowing syntax that both would accept (and maybe even oracle)
    
    If anyone is willing to feed them in with small parts, let me know we can
    probably work together and you can use my ideas here as a starting point.
    The main problem still is that in complete mediawiki the usage and escaping
    of blobs isnt properly done, so postgresql beeing a bit more strict on how
    to use bytea might need some more tweaks to get rid of the "already
    encoded" hack.
    
    Note that for the search to work, you need to have a proper working
    tsearch2 install (comes with the contrib part of postgresql)
    
    SMTPMAP
    Currently, smtpmap is dead. As nmap does a quite ok job, that seems to fit
    the needs of most of the users, smtpmap will not be developed anymore,
    unless there is enough public demand.
    
    If you want to test the latest version, it can be downloaded here:
    
    Active Projects
    
    A quite new program to better visualize memory usage of your program. A bit
    inspired by massif, windows defrag and a tool I use at work internally
    (memtag).
    Planned Projects
    
    N.N.
    Yet another apache log analyzing tool. Should be quite similar to webalizer
    and awfull, but with the features and changes that I like. It should also
    do some sophisticated caching of the data, so that subsequent runs are
    faster. I think this could be an intresting project to use
    boost::serialization for.
    
    Status:Planning
    
N.N.
    This project will create a program to help in digital enhancement of amateur astronomy images.
    It will have an intuitive to use graphical userinterface (based on Qt) and
    can be extended by various plugins.
    The most important features will be:
    
	- Overlay of multiple pictures, based on various criterias. Pictures
	will be aligned with an accuracy below a single pixel.
	
- Different sharpening filters can be applied with preview capabilities.
	
- Most operations will be multithreaded, thus can make good use of SMP/Multicore systems.
	
- Some operations can even be split among multiple Computers.
    
Preliminary name: viss (Versatile Image Stacking System), basierend auf
    viss (Versatile Image Processing System)
    Status:Planning
    
    
IW Mapper
    The IW Mapper is a qt application whose primary purpose is to maintain the
    database information for the iWear WLAN Localisation subsystem.
    Nevertheless you will be able to maintain the standard Localisation
    subsystem too and import different maps and display different informations on it.
    Maybe in the far future we will be able to do limited navigational analysis.
    
    Status:Alpha
    
SpamFix
    SpamFix is a fast spamfiltering program, based on a bayesian approach. The
    project is currently dead, with only partly existing sources. It will be
    resurrected as soon as enough resources are available and together with the
    iWear Project basics will be built on a completely new source base.
    
    Status:Reengineering
    
N.N.
    While commercial tools are hard to use and open source tools lack
    flexibility, there does not seem to be a good apache weblog analysing tool
    around. This should be a very modular tool that can do incremental runs and
    display thorought information about everything it can get. Plugins should
    make it possible to add data gathered from javascripts that collect
    settings like resolution etc.
    
    Status:Idea
    
N.N.
    While the commercial Programs sometimes do a quite good job at OCR, there
    is no free tool that has the same quality. Worse, I believe that you can do
    far better than the commercial tools, with a few new ideas. So the idea is
    to write a good OCR tool, that has good recognition quality as well as a
    good interface that can really good help teaching and improving the
    program.
    While doing that, Im sure the development process could benefit from a
    simulatenous developement of goof handwriting recognition programs. Plugged
    into a "standard" OCR tool, it can enable to recognize mixed
    documents. It should be able to work from bitmap data as well as vector
    data (path of the pen).
    Really good would be too, to be able to process heavily distorted letters,
    where a prerequisite would be to automatically find them in an image. That
    way we could have a really good automatic tool, that can extract text out
    of images for searching.
    
    Status:Idea
    
N.N.
    Google Earth offers a huge amount of data with location information. While
    most of the data is merely used for just browsing the world, some of it
    could be put to some better use. This software shall take the google
    information about distribution of webcams, and from that on it shall be
    able to display multiple webcam livestreams. Of course not only the webcams
    of google, but also manually entered should all be able to be displayed at
    one, in a configurable environment. Multiple windows, across multiple
    screens, or even multiple x-servers should all display those. To increase
    performance, all those other displays should run client applications which
    just are controlled by an master app, but decode their data themselves.
    
    One possible application could be the search for tornados in areas with a
    high webcam density. A future version of this program could be able to put
    an overlay grid over the visible data, so you can exactly determine
    coordinates of what you see. This shall be an external library to be able
    to be used by other programs too, so you could do that with still images,
    other video feeds etc. pp.
    
    Later versions could be able to produce overlays for maps, so we can see
    what is visible within the camera, also with different colors so we know
    how good. Single videos shall be controllable all in their zoom factor, or
    you could control to cut-off a little part of it. It could be
    semi-automized to draw a track of something along the map. Maybe with
    multiple input vectors, all of which do some voronoi tracking and then
    display a full track. Also some movement detection could be put in, so that
    it triggers alerts when it sees something big moving.
    
    Status:Idea
    
N.N.
    Yet another decompiler for C++. Of course its impossible to really
    decompile a program from binary to C++ back, but we can try to do so. This
    project shall do it with a GUI and some project files giving the user the
    possibility to interactively support the system, and maybe help it learning
    what certain things mean. The user should be able to give names to local
    variables, adjust strange constructs to be switch/case blocks and let the
    decompiler rearrange later accesses to these variables etc.
    
    Status:Idea
    
N.N.
    Beagle (the open source variant of googles desktop search) could need a
    bunch of plugins. As well as some improvement in its speed, it could
    outperform google. Together with some windows clients as well as some
    central database and user rights, it would be a perfect environment even in
    company networks.
    
    Status:Idea
    
N.N.
    A compression tool to experiment with different compression algorithms. The
    goal should be a very good overall compression. We should incorporate all
    the ideas to improve LZW (variable code length, variable dictionary length,
    fifo dictionary filling, dictionary entries deleted before resizing etc.)
    along with a good way to encode those code indices so that a following
    arithmetic coding pass will work better. Optionally include some other
    encoding scheme, or even invent some new.
    Maybe we can also introduce some burrows wheeler pass, that will help
    creating codes better optimizable in the LZW pass.  
    
    Status:Idea
    
N.N.
    Yet another GUI/Widget library. Why? Because I do believe that the current
    existing ones are fundamentally flawed in various ways. This list applies
    not to all of them, but all of them have at least one of these flaws.
    
	- 
	I was not able to find any that supports using multiple independent X11
	displays, or even a sane handling of the current one (and possibly
	re-creating a broken connection). This is mostly due to having
	important resources (like the X Display connection) as static/singleton
	variables. The new system must avoid this.
	
- 
	Use of non-standard classes at inappropriate places. Many toolkits use
	their own implementation of certain classes or functions available in
	standard C++. This is often not necessary and hinders cooperation with
	standard C++ code. The new system therefore will use standard types
	where possible. If this is not desired (i.e. due to lacking features or
	bad performance) boost types are provided. If those are also not
	wanted, own types are provided that serve as general purpose classes
	beyond the features that are needed just for the toolkit. Those classes
	shall be seperated strictly from the GUI part and also where possible
	there shall be alternative interfaces for standard types doing
	conversions on-the-fly or use the standard classes, even if this is
	slower.
	
- 
	So called "modern" C++ features such as templates or
	exceptions are not used. These features are now more than a decade old
	and are to be considered mature, yet they are not used. We therefore
	shall not only use those features but even those that will be
	introduced into ISO14882:2010(e), including TR2 when necessary.
	
- 
	C++ versions are written on top of C libraries. While this often
	necessary from a historical point of view (the C library predates the
	C++ wrapper) this is often a bad choice. Internal structures cannot
	benefit from easier to use and maintain C++ code. Features can
	sometimes not be implemented properly even in C++ because the glue code
	to C becomes too complex. Often the C++ interface is behind the feature
	completeness of the C libraries, since new stuff is added to the C
	libraries first. Therefore C++ is the base language of this library.
	Where possible, a C wrapper library shall be created that handles C++
	types as opaque pointers and provides wrappers. The usage of SWIG for
	not only C shall be evaluated.
	
- 
	Many GUI Toolkits provide their own method of internationalization.
	While this is good to have for writers of programs that don't already
	have such a system, it's bad for those that do. Therefore the system
	shall provide both. A mechanism that the user can use easily, but also
	a way to let the system use the user provided translation mechanism.
	
- 
	Some GUI designers seem to think that a faster library must also have
	more complex/cryptic interfaces. We do not believe in this, therefore
	we provide as many interfaces as possbile where there is a tradeoff to
	be made. For example, we will evaluate if boost named parameter support
	can be properly used, but also do provide position dependent variants.
	Convenience for the library user is equally important as direct control
	over almost everything. Therefore proper defaults shall be provided
	where useful.
	
As a first target the library shall implement all features as X11 client.
    Various features not available on other ports shall be clearly notified by
    #defines, where possible workarounds should be built so that in the best
    case, no #ifdef based decision in the user program is needed, and maybe the
    program just behaves a little bit differently at runtime.
    Status:Planning
    
N.N.
    A tool to automatically determine the performance of a set of compression
    tools. With a web displaying, similar to 
    http://compressia.ca
    
    Status:Planning
    
Small Tools
    During the time, I developed some small tools that I will make available here.
    nmbsub2
    At the end of the 1990s there were very much windows systems with open
    shares. I developed, and rewrote this tool to scan for such open shares in
    a given subnet, to count the amount of open systems, and its change over
    time. Unfortunately due to repeated hard disc failures, I lost the original
    statistics. All I can remember is, that due to changed default settings in
    Windows XP SP1 the number of open system keeps decreasing. Still today
    there are some systems open, though I think they are below 1% here in
    germany. It could be different in areas where more Windows 98 or other
    systems are available.
    
    Note that it searches a whole 24 Bit network, given without the last
    element of the IP. You can change the script to allow faster scanning,
    while parellelizing more processes. You should also run the tool in an
    empty directory, as it will create a file for each found host.
    
    searchjpeg.cpp
    After some unfortunate deletion event on my digital camera, I developed
    this tool. While all the file recovery tools only find complete files, if
    at all, this tool can search for jpeg fragments, as long as the header is
    intact. This way I was able to at least get a few pieces back of my images.
    Im currently trying to improve it, so it can be used on block dvices too,
    so that it could be used as some forensics tool for searching harddiscs.
    
	- searchjpeg.cpp (Available shortly, after some cleanup)
- Yes I know I said shortly a while ago, however this was residing on
	a place on a my laptop that was not backed up (/root) and so it did not
	survive my harddrive crash. But one day I will rewrite it, however I
	heard there are several dozen programs out there that do a better job!
	
Contact
    Write a mail to plasmahh_at_projectiwear_dot_org
    
    