log69 logo
blog
tomld
aaphoto
help
gallery
links
donate
contact

lang
blog

19/01/2012
My scripts collection
I've created a new git repository for my scripts that might be useful for others.

There is a Ruby script now in it which I created to get a summarized and colorful system statistics on the console that I felt lacking. I tested it on Debian 6. A screenshot of it:

sysstat ruby

05/12/2011
Releasing new tomld version: v0.76
With a few fixes.

For more information see the changelog

02/12/2011
Tomld package changes
I've removed libnotify as a dependency from the package and marked it as only suggested. This way there is no hell of a dependency coming with it on a minimal system, where undesirable.

Also removed the postinst and postrm scripts that had added and removed the "security=tomoyo" kernel boot parameter. So from now these things need to be done manually.

I'm planning to update and create a recent video with the current changes.

03/10/2011
Releasing new tomld version: v0.72
With important fixes.

One of the important change is that I handle domain denies beside access denies too from now. This can happen when an enforcing mode domain contains an allow_execute rule for a binary and it tries to run it, but the subdomain doesn't exist for this.

For more information see the changelog

04/09/2011
Releasing new tomld version: v0.53
With many fixes since 0.40 and automatic chroot handling.

For more information see the changelog

28/08/2011
Releasing new tomld version: v0.40
This is the first stable version with complete functionality.

Significant changes beside fixes since the last version:
- improved the --info option to make its output more readable
- added power saving mode
- added --restore option for easy data restore from last backup
- more detailful information in log file
- wildcard directories with random names beside files too
- better compatibility between different Linux systems
- encrypted volumes are added to recursive directories automatically
- create backup also when removing domains
- warning message of denial of service in log file with the name of the directory containing the most entries

For more information see the changelog

01/08/2011
Releasing new tomld version: v0.39
This is a prerelease of the next version that will be the first stable one. FAQ is here and an updated short demonstration video is also available showing the installation process.

With this version there's no need to use the command line on desktops. The package creates two icons. One is for starting the notification service and the second for requesting temporary learning mode in case of any problem.

For more information see the changelog

25/07/2011
Releasing new tomld version: v0.38
This is the first fully complete release, currently still beta. FAQ and a video are also available.

For more information see the changelog

19/07/2011
Releasing new tomld version: v0.37
The full automation is ready. The software is feature complete. Currently under testing.

The documentation and presentation video are still comming.

For more information see the changelog

29/06/2011
Flowchart
I've created a flowchart for tomld. Its structure may still change.

26/06/2011
Releasing new tomld version: v0.35
With major bugfixes since v0.32. Currently the full automation is still missing, that determines the end of the learning phase.

For more information see the changelog

07/06/2011
Releasing new tomld version: v0.32
This is the first working C version of tomld. Lot of testing is necessary.

Now i'm working on the things needed for full automation including deciding when the domain has enough collected rules to be turned into enforcing mode.

16/04/2011
Releasing new tomld version: v0.30
With several improvements and major bugfixes. I've implemented the differences between Tomoyo version 2.2 and 2.3 since last time.

For more information see the changelog

03/04/2011
Releasing new tomld version: v0.26
With several improvements and major bugfixes. There are a lot of tests behind me and i consider this code to be beta quality.

For more information see the changelog

30/03/2011
tomld is feature complete
I consider tomld feature complete now. I've implemented all the functions that i originally planned and now i'd like to focus on massive testing and bugfixing.

I also successfully set up tomld in a few of my computing environments, where after creating the policy easily and confortably with it, the rules seemed to be fine even after manual check, and the processes and applications could operate almost without any access denies.

Smaller functional changes are to be expected from now.

26/03/2011
Git repo for tomld
I've created a git repository for tomld on github.

23/03/2011
Releasing new tomld version: v0.17
With important improvements.

For more information see the changelog

22/03/2011
Releasing new tomld version: v0.16
With several bugfixes.

16/03/2011
tomld update
Documentation updated with a new version.

15/03/2011
Releasing new tomld version: v0.08
I'm developing a security tool called tomld (tomoyo learning daemon). I created it as an extension solution to the Tomoyo modul of the Linux kernel.

Tomoyo is part of the mainline Linux kernel from version 2.6.30, while AppArmor part of it only from 2.6.36. From series 2.x it's using the standard LSM framework to communicate with the kernel. Tomoyo solution is a kernel patch which gives full control to the extension this way. There is an alternate version too called Akari, which is provided as a kernel modul having the advantage of easy modul load, but with the disadvantage of not having full control because if this.

The goal of the software is to provide an easy to use, fully automatic defense against network attack, where all processes are closed in a domain with their own rules created by themselves. This is achieved by using the ACL dependent MAC (Mandatory Access Control) solution of Tomoyo.

I'm supporting only Debian and Ubuntu platforms currently, but planning to extend it with Fedora, openSUSE and CentOS.

Further information can be found here

23/02/2011
Update
I've enabled the directory page to choose destination path in the Windows installer for user request.

26/01/2011
Releasing new aaphoto version: v0.41
- with minor bugfixes

I rewrote the contast algorithm in the former version, but didn't align its constant to it, so the contrast became too strong in many cases. This is fixed now, thanks to Andrew Lu for notifying me.

For more information see the changelog

18/12/2010
Releasing new aaphoto version: v0.40
- with major improvements in aaRGB

For more information see the changelog

15/12/2010
aaRGB improvements
I'm planning to release a new aaphoto version 0.40, which has improvements mainly in aaRGB's code.

I have built a self control mechanism in my contrast algorithm with which i try to control and bring a limit to the contrast making overexposure that usually happens on images with huge monotonic backgrounds and much fewer details.

A 3 step animation can be seen on the following picture that shows the original image, then the new algorithm and at last the result of the old one (click on it):

aaRGB new contrast

The amount of the contrast to be cut is calculated by an average of the whole histogram, multiplied by a constant factor. This makes sure that the cutting amount will be suitably based on the "weight" distribution, and let a particular amount of detail not disappear from the given image. But most of the time this doesn't work on images with big blank backgrounds.

I'm trying to solve this such a way that the less details are on the image, the less contrast i apply on it. I designed a specific curve to the ratio of the decrease in contrast and of the amount of details on the image, that starts running high acutely from the half point. Currently i found raising to the power of 5 and multiply by 3 function the best for it. This change needs massive testing.

Furthermore i improved the algorithm of the saturation adjustment and rewrote it from linear to exponential with applying rather less changes on the colors closer to the edges of the histogram.

All of these are being tested.

14/09/2010
Releasing new aaphoto version: v0.39
- with major bugfixes

For more information see the changelog

11/09/2010
Debian 6 and GCC 4.4
I have upgraded my development environment to Debian's upcoming branch of version 6, that has been frozen already. It comes with GCC 4.4.5, with which i noticed some performance gain at the compiled binaries as compared to Debian 5 and GCC 4.3.2.

I made a quick and not as much dependable test, at which i kept all files in a ram disk. I ran three different aaphoto binaries on a 460 Mpixel image (25000 x 18542), where both the host system and the source code were the same.

A rough 3 % of speed difference was to be seen on my machine with -O2 optimization. The command was 'aaphoto -a -r90% image.jpg', and the peek of the memory usage was 2.3 GB. The speed difference shows about the same result with plenty little images too.

(the dark lines at the end of bars are measurement errors)

aaphoto scaling test chart1

19/07/2010
Update
libpng has been updated in Debian's stable branch. Several vulnerabilities were fixed.

I've updated the Linux and Windows static binaries.

18/07/2010
Releasing new aaphoto version: v0.38
- some minor bugfixes

For more information see the changelog

10/05/2010
Releasing new aaphoto version: v0.37
- OpenMP support added for multi processing
- bugfix: exif info was missed out after last version's change in JPEG handling
- new aaRGB v0.61 version with OpenMP support

For more information see the changelog

05/05/2010
OpenMP and performance distribution
I've added OpenMP support to my code and mostly i succeeded to make all time intensive parts paralleled except the image decoder and loader external libs, plus solved the shared memory access between the active separate threads.

GCC supports OpenMP from version 4.2, Debian has it too in the stable branch. I'll be able to compile Windows binary with OpenMP support only after the upcoming release of Mingw GCC version 4.4.

A test has been made to show the performance distribution of aaphoto on an IBM x3950 m2 server with 24 physical cores with a 460 Mpixel image. The test shows clearly that the color adjusting part scales linearly just nice when increasing the number of CPU cores.

Thanks to Zsolt Bartos-Elekes (Müszi) for the test.

A detailed PDF is available and a text file with the raw datas.

aaphoto scaling test chart1 aaphoto scaling test chart2

According to the huge change in the code structure, i need a profound testing. I gladly take any help or bug report.

05/05/2010
Binaries for development version
I made static binaries compiled from the current development version available on the site for user request. They can be found on the download part under the source codes.

I got several requests regarding this, because the newest version can always be seen in the changelog file that has not been released yet.

Avalilable for Linux and Windows platforms.

Remarks: these versions need further massive testing, therefore the chance for a malfunction is rather higher, and they can even be changed daily.

18/04/2010
Update
libjasper has been updated in Debian's stable branch. A denial of service type of vulnerability was fixed together with a jpeg reading error.

I've updated the Linux and Windows static binaries (v0.36.3).

11/04/2010
Update
libpng has been updated in Debian's stable branch. Several vulnerabilities were fixed.

I've updated the Linux and Windows static binaries (v0.36.2).

16/03/2010
Releasing new aaphoto version: v0.36
- bugfix: it doesn't ask for administrative privileges anymore while running in an admin account under vista and windows 7 (windows platform only)
Accidentally i left a registry hack in the innosetup config file that didn't solve anything and i also forgot about it, but it caused problems on vista and above. Finally i removed it.

- bugfix: --rotate180 switch didn't turn the middle line in images with odd heights
I wrote a script for testing that throws random input switches and values to aaphoto where the failure came out at once.

- JPEG format handling entirely rewritten to be able to handle extra parameters in this format separately, now libjpeg is called directly instead of libjasper for reading / writing JPEG images so libjpeg is a new dependency from now on, formerly only libjasper was depended on it
This was needed to restore the DPI value.

- original DPI values of images are restored in BMP, JPEG and PNG formats during conversion
This was a feature request from a user. It might do good in keeping print sizes of posters and photos.

For more information see the changelog

01/03/2010
Update
- bugfix: fix for tmpfile() patches of libjasper and libjpeg (windows platform only), when running more than one instances of aaphoto at a time, they all used the same temporary files and therefore the images became corrupt

Now fixed and the windows static binary is updated too. It is marked v0.35.2.

Thanks to Bill Yotter for reporting it.

27/02/2010
Releasing new aaphoto version: v0.35
- bugfix: possible buffer overflows fixed

Under UHU system's development branch with GCC version 4.4.2 the compiler dropped warnings that helped to find out the fault. It recognized that within the cycle the value of the index used for the array can exceed the declared one.

Thanks to Rezső Páder for the contribution.

19/02/2010
Releasing new aaphoto version: v0.34
- update: changes in new version of libpng 1.4.0, aaio.c updated as necessary

png_check_sig() function replaced with png_sig_cmp(), setjmp(png_ptr->jmpbuf) has been deprecated, changed to setjmp(png_jmpbuf(png_ptr))

See more at libpng's website

14/02/2010
Update
- bugfix: Restricted users could not read and write JPEG format images on Windows platform. The rest of the formats worked fine.

The source of the problem was the tmpfile() C function call used by libjpeg and libjasper.

This function is implemented on Windows platform that every temporary file is to be created in the root of the current directory. However the restricted users usually do not have the permissions to write there.

Now fixed and the static binaries are updated too. This doesn't mean a newer program version, so it is marked v0.33.2.

12/02/2010
Update
The static binaries are compiled from now with libs from the current Debian stable branch. The updates can be downloaded from here.

Besides, I've finished releasing binaries for OpenBSD, OpenSolaris and Mac OS X platforms.

10/01/2010
Releasing new aaphoto version: v0.33
- some changes in documentation
- bugfix: unfreed space caused memory leak
- bugfix: uninitialized variable caused --resize to misbehave
- fix: change of return values in procedures to reflect standard exit codes

For more information see the changelog

Thanks to Gábor Nagy for the MacOSX compilation.

25/10/2009
Some updates in documentation
I have updated the manual files of the debian package, plus some descriptions in the sources too.

Thanks to Rezső Páder for the manual.

20/10/2009
Releasing new aaphoto version: v0.32
- new option switches
- new aaRGB v0.60 version: gamma handling of the lighter colors has been removed from the two-pole gamma computing, because it proved to be inefficient

For more information see the changelog

Thanks to Gábor Nagy for the MacOSX compilation.

24/08/2009
Releasing new aaphoto version: v0.31
- bugfix: __BMP_ONLY__ directive fix in source code
- bugfix: writing of BMP images could result in corrupt BMP structure
- code cleanup in BMP write function
- parameters of switches also work with spaces between them
- new aaRGB version v0.59 with some more code cleanup

For more information see the changelog

Thanks to Gábor Nagy for the MacOSX compilation.

04/07/2009
Updated MacOSX binary
Non-static, stable 32 bit PPC compilation.
Exclusive dependencies: libm, libc.

Thanks to Gábor Nagy for compiling it.

01/03/2009
Updated Opensolaris binary
I have compiled aaphoto with Sun's own compiler, so this means the Opensolaris binary does not have the libgcc dependency anymore.

I have also updated the compiler scripts, so it compiles fine on Opensolaris with the method described in the INSTALL file, only the ss-dev package needs to be installed on the system.

22/02/2009
Releasing new aaphoto version: v0.30
- Implementation of PNG format (RGB and Gray images read / write with alpha channel support)
- bugfix: reading corrupt exif info in JPEG files could get into an infinite loop
- bugfix: length of exif info was determined wrongly
- new option switches
- new aaRGB version v0.58 with lots of code cleanup

For more information see the changelog

Thanks to Rezső Páder for his patches, the manual, fixes and ideas.

The Mac OS X platform version is still in progress, currently the former version is available yet.

01/02/2009
New aaphoto release soon
I'm planning to release a new version within a couple of weeks. Main changes will be the implementation of the PNG format with alpha channels, plus bugfixes and code cleanups.

Currently a working version is ready and it seems to work just fine with a custom compiled JasPer lib. Only it gives a segmentation fault with the distributions' officially shipped JasPer library while writing out a JPEG file. I couldn't solve this yet.

If anyone feels to help testing, an always current development version can be downloaded from here that contains not only the source codes but compiling scripts and other files too.

20/08/2008
aaphoto PNG format
I've cleaned up the mess among my source files and scripts and got prepared to implement the PNG file format.

18/02/2008
aaphoto windows installer updated
The windows installer had wrong version number that has been fixed finally.
The updated package can be downloaded from here

14/02/2008
aaphoto debian package
The debian package has been finally made.

12/02/2008
aaphoto source files changed
- From now (v0.29) the source files contain the necessary configuration files, so it can be compiled the standard way:
./configure && make && sudo make install

02/02/2008
Releasing new aaphoto version: v0.29
- Grayscale images can also be used as an input
- change: file name buffer increased (for processing files in folders)
- Exif meta information is now restored during conversion in JPEG images
For more information see the changelog

Thanks to Rezső Páder for creating hungarian and english manual and for the rest of the help.

18/08/2007
MacOSX platform version
Non-static, stable 32 bit i386 compilation.
Exclusive dependencies: libm, libc.
Thanks to Csaba Mártha for compiling it.

11/08/2007
Releasing new aaphoto version: v0.28
- bugfix: removing extra slashes from the end of folders
- new aaRGB version v0.57
- overexposure propblem at contrast adjusting fixed
- oversaturated colors problem at saturation adjusting fixed

18/07/2007
FreeBSD platform version
Static, stable 32 bit i386 compilation.

04/07/2007
Changing license type from GPL 2 to GPL 3
The Free Software Foundation has finally released the GNU General Public License version 3 on 29 june, 2007.

Releasing new aaphoto version: v0.27
- new aaRGB version v0.56 with "Apply only on selection" function for Irfanview

02/06/2007
Changing license type from Freeware to GPL
Publishing whole source code.

26/05/2007
Releasing new aaphoto version: v0.26
- bugfix: runtime error occured under Windows platform during reading JPEG-2000 format images

19/05/2007
Releasing new aaphoto version: v0.25
- expanding functions: rotate and mirror

01/05/2007
Releasing new aaphoto version: v0.24
- simplification: no --autoadjust parameter needed from now if no other parameters given
- simplification: input parameter can be folders too beside files