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