# How to convert a PDF from archive.org for tablet

Archive.org is a great website full of book rarities available for free download. The only problem is that most of their PDF files are quiet unreadable, not just on a tablet, but even on a stronger desktop PC, because they are optimized for minimal size, and it can take around 5-10 seconds for a tablet to render a page. This post shows a method for converting those PDF files to larger files (around 4x), which can be comfortably browsed offline even on a tablet.

# CozyCL: a comfortable OpenCL library

CozyCL is a very simple, minimalist OpenCL library. You can run programs on your graphics card pretty easily with it, without the need to know anything about the data types of the base libraries (at least for the host program). When I started to learn about GPU programming in the previous weeks, I found even the most handy C++ bindings pretty time-consuming for a beginner, who is mostly interested in getting positive feedback and sense of achievement after a couple of initial attempts.

# Multi-threaded Buddhabrot fractal rendering in C++ for 16 bit/channel post-processing

I’ve written the major part of this Buddhabrot rendering program in last August, and after a six months break I carried on with it again this weekend to close the project finally. But before going into details, let`s see what it does:

# An easy-to-use Simplex solver class

Few days ago I decided to create a C++ implementation of the Simplex algorithm, which is a tool for solving Linear Programming problems. One of my motivations could have been my recent encounter with the Eigen linear algebra library, which really surprised me with its beautiful syntax and easy usage. So I wanted to gain a little experience with Eigen, although some factorization-related project might have suited this purpose better. Another motivational factor was a not yet published project of mine, which might get finished in 1 or 2 months, and would give LP a real application.

# A picture of the Moon

This picture of the Moon is made from the average (mean) of 16 RAW images (14 bit), taken on the 30th of May 2012, around 23:30 (UTC+1), at Frankfurt am Main. I used my 9.25 inch Celestron telescope, with an adapter, which reduces its focal length, so the whole Moon fits in the screen, and also produces higher brightness level. The settings for the DSLR camera are: ISO: 100, Shutter speed: 1/400.

# Music composition exercise

I’ve just finished this short choral music, made as an exercise for chord progression and voice leading in four sections: soprano, alto, tenor, bass.

# Algebraic formulas and matrix symmetry

This post features two examples of algebraic manipulation and their relation to the symmetry of the matrices representing the expressions. The algebraic expressions we investigate are quadratic, multivariate and can be written in the matrix form:

# Two chromatic chord progressions

While most diatonic chord progressions are based on the relations of the roots, some chromatic progressions can be thought as movements of voices. 1. If we have a minor triad in root position, and we move the 1st down and the 5th up by a semitone, then we get a minor triad in 6/3 position, and the root of the new chord is below the old one by a major third. Let`s see an example in D minor. The chords are: Dm, Bbm, F#m, Dm. The semitone movements are repeated 3 times, to get back to Dm, because 3×4 =

# Graph editor and Matrix generator

Making matrix representations of graphs always takes a lot of time. For practicing algebraic or spectral graph theory on computer algebra systems, one has to create a lot of graphs. A handy tool can make this easy, which allows to draw graphs and generate code e.g. for Maple with one click. Well I couldn’t find a tool like that, so I made one on the weekend in C#. With it, you can draw custom graphs, including: arbitrary loops, parallel edges, directed edges, etc. and can generate code for these computer algebra systems: Maple, MATLAB, Maxima. Then the code can be

# Exception class with printf-like parameters for C++

When raising exceptions it is good to make their error texts as detailed as possible. Usually this isn’t an easy task, cause it involves type conversions and string operations. This is why I’ve implemented this class, which can be instantiated by printf-like parameters as easily as this line: throw(new FException("Invalid tag: ‘%s’. At line: %d.", tag, line));