Blog

  • square photos in Google Contacts – create them with the help of ImageMagick’s convert -splice

    I really start appreciating ImageMagick and the transformations it supports, that I come across.

    Google Contacts really prefers square photos, and if your photo does not have a square geometry, you have to crop it to a sub-square. Now that I know, how to insert a rectangle to the photo (with the help of ImageMagick’s “convert -splice“, GraphicsMagic doesn’t support “convert -splice“), I will happily upload square photos from now on.

    I was long wondering, how I could achieve this.

  • MacPort/DarwinPort and Fink coexisting on my Mac

    Both coexist on my Mac, and sometimes installations complain about binaries resp. libraries in an incompatible format.
    MacPort/DarwinPort lives in /opt/local, Fink lives in /sw.
    In order for fine installations I sometimes have to temporarily rename /opt/local resp. /sw.
    After the successful installations I rename them back.

    I learned this lesson during the installation of ImageMagick on my Mac.

  • Linux.com :: ImageMagick or GraphicsMagick?

    Linux.com :: ImageMagick (IM) or GraphicsMagick (GM)?

    … unless you absolutely without-a-doubt need some new IM option not yet available in GM, the safe bet is to stick to GM’s feature set, and write your app to work with either one. …

  • how to copy a rectangle region from an image file? (“cropping”)

    My original source files are PDF files, but I already converted them to PNG using Ghostscript.

    I was thinking of ImageMagick

    I came across phatch, I read of it here. It’s a GUI, that helps running ImageMagick with certain operations in a batch. It came with a lot of dependencies on other packages. I tried to fullfil some of of them, eventually I gave up. If I very sure, that phatch was the way to go, that dependency hell wouldn’t be a dead end. Spending time on getting phatch to run was a dead end for me.

    There is a book on ImageMagick at PackPub, there is also one at Apress. I bought both of them as PDFs. That was the key to the success. I found nice examples, and I was able to apply some easy recipe to my task.

    $ convert orig.png -crop geometry new.png

    Actually the recommendation says to use “+repage“, in order to not confuse certain software:
    $ convert orig.png -crop geometry +repage new.png
    Without “+repage” the file stores the displacement of the segment wrt. the original image, which comes in quite handy, but … certain software gets confused, eg. when I loaded one such new image into GIMP, GIMP displayed the displacement and presented me rubbish.

    There is a fork of ImageMagick called GraphicsMagick. Pretty fast, but you may come across features of ImageMagick, that GraphicsMagick doesn’t know.

  • my call monitor software is going jruby

    My FRITZ!Box call monitor is written in ruby-1.9. So far I am running it using MRI-ruby-1.9.

    This call monitor is a FRITZ!Box call monitor, it does not monitor the calls on my smartphone yet (which is rather, rather sad). Most of the year (for economical reasons) I should sit in a customer’s office quite a little away from my place – receiving calls on my smartphone. So it makes much sense to get my call monitor software to monitor the calls on my smartphone one day (rather sooner than later).

    Just recently (with the help of RVM) I delved into the the jruby world, and of course I am trying to run my call monitor software also with “jruby –1.9”.
    My current problems with “jruby-1.6.0.RC2 –1.9” are with I18N and encodings, so I cannot open my gmail address book with “r:UTF-16LE:UTF-8”. My evasive strategy is to let it read a UTF-8 version of it.
    The ruby CSV module, that parses my address book using regular expressions, seems to give the runtime system yet unseen tasks.
    Maybe I am not too far away from running a slightly adapter version of my call monitor in jruby and therefore on a JVM.

    Of course, IronRuby (a .Net ruby implementation) is also an option.

    There are not that many different smartphone operating systems, that run JVM-s, so we are mainly talking about Android.
    Does Android allow non-core software to (sort of) monitor the incoming and outgoing calls?

    Once jruby successfully runs my call monitor, the way is free to go for an Android implementation. I am rather hot for it.

    Update 2011-03-07:
    After a couple of postings on user@jruby.codehouse.org and especially with the support of Thomas E. Enebo, my software now runs just as well with the very, very latest jruby, that I produced through “rvm install jruby-head“.

    Update 2011-03-28:
    Now it runs reading the XML Google Contacts, which is more comfortable, as I can download it on the command line.
  • filling JasperReports forms with a “simple” command line utility

    Are you interested in such a utility?

    I derived this utility from TextApp, that comes with the JasperReports sample applications.

    It uses command line arguments in order to assign values to $P{…} within JRXML resp. .jasper.

    The advantage over installing JasperReports as a server: it makes use of JasperReports’ libraries, but it’s stand-alone and pretty lightweight.

    Update 2011-04-20
    My next “major” feature enhancement for this utility: Let it make use of XML elements and their attributes resp. “content” instead of command line arguments. That should deal with UTF-8 text much better than command line arguments to be supplied from within shell scripts. Actually the JasperReports toolkit already knows how to work with XML, but my point is to make the usage of XML supplied fields look almost like $P{…}.
    (Nota bene: this was written rather in a hurry and may need some rephrasing. Once I will start the implementation, I will certainly do this.)