Wednesday, March 9, 2011

ImageMagick v6 Examples

ImageMagick v6 Examples

apress.com: The Definitive Guide to ImageMagick : 9781590595909

APRESS.COM : The Definitive Guide to ImageMagick : 9781590595909

This book will most certainly also help you with GraphicsMagick.

book: ImageMagick Tricks

ImageMagick Tricks Book & eBook | Packt Publishing Technical & IT Book Store

This book will most certainly also help you with GraphicsMagick.

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.

Monday, March 7, 2011

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.)

JasperReports – Documentation and Samples

JasperForge > JasperReports Forums

"Black Duck Koders" – Koders.com

Open Source Code Search Engine - Black Duck Koders

A colleague of mine pointed me to that website; he had found code to work with the JasperReports Java API there.

Friday, March 4, 2011

youtube-dl – updating it from github

youtube-dl

I guess, YouTube and youtube-dl's developer are playing cat and mouse.
The utility already has a command line option to update itself to the last stable release, but today I had to update it to "head". Now it works again, and I am happily downloading a few nice videos for my journey home.

XML for ruby: libxml.rubyforge.org

Libxml

XML for ruby: xml-simple.rubyforge.org

XmlSimple - XML made easy

XML for ruby: nokogiri.org

Nokogiri

XML for ruby: builder.rubyforge.org

Builder for Markup

Nokogiri: yet another HTML and XML parser for ruby

Nokogiri: A Faster, Better HTML and XML Parser for Ruby (than Hpricot)

Ruby XML Performance Shootout: Nokogiri vs LibXML vs Hpricot vs REXML

Ruby XML Performance Shootout: Nokogiri vs LibXML vs Hpricot vs REXML

I am really eager to know, what the current state is.

Thursday, March 3, 2011

GoogleCL = command line tools for the Google Data APIs - manual

Manual - googlecl - How to use GoogleCL. (Project Hosting on Google Code)

GoogleCL = command line tools for the Google Data APIs – introduction on the Google Open Source blog

Introducing the Google Command Line Tool - Google Open Source Blog

O'Reilly Media book: XPath and XPointer

XPath and XPointer - O'Reilly Media


Update 2011-03-05:
Happily acquired the PDF e-book.
Lots of nice XPath examples … – now: practice, practice, practice!

Update 2011-03-09:
This book is also available online and for free here, on the O'Reilly Commons wiki.

XSLT Cookbook - O'Reilly Media

XSLT Cookbook, Second Edition - O'Reilly Media

Update 2011-03-05:
Happily acquired the PDF e-book.
Lots of nice XPath examples … – now: practice, practice, practice!

Learning XSLT - O'Reilly Media

Learning XSLT - O'Reilly Media

REXML – an XML toolkit for Ruby – an introduction on developer.com

REXML: Processing XML in Ruby - Developer.com

REXML – an XML toolkit for Ruby – an introduction by David Mertz

XML Matters: The REXML library

REXML – an XML toolkit for Ruby – the API in RDoc style


REXML – an XML toolkit for Ruby – "Home"

REXML - Home

REXML – an XML toolkit for Ruby – tutorial on germane-software.com

REXML Tutorial

Ruby Standard Library Documentation

Ruby Standard Library Documentation

REXML – an XML toolkit for Ruby – on ruby-doc.org

rexml: Ruby Standard Library Documentation [ruby-doc.org]

Wednesday, March 2, 2011

your Google Contacts address book as XML

Today I came across a rather interesting thread on the googlecl-discuss mailing list, it's subject was "Backing up contacts", and it thrilled me instantly. With this command line, you get your address book dumped as completely, as it currently can get:
$ google contacts list --title='' --fields=xml
Of course you must have an up-to-date gdata-python-client and googlecl installation. But you do have that anyway, don't you? I updated mine today.

Yes, the XML misses an enclosing top-level element – but you can add that easily.

I would also love to see the groupMembershipInfo in a rather "accessible" way, but I guess, that will also come sooner or later.

This lists alls groups (and not in XML for currently trivial reasons), but I am not able to relate the groups to the (group) URIs mentioned in the contacts XML:
$ google contacts list-groups --title='' --fields=xml --verbose ".*"


My FRITZ!Box call monitor software will make use of the XML Google Contacts rather soon. That way I can skip all the current JRuby CSV and m17n problems. Its also more comfortable to download, because I can do that on the command line. And if it's more comfortable, you do it more often. Backing up your address book frequently isn't a bad idea either, right?!

Update 2011-03-28:
Task accomplished for my FRITZ!Box call monitor software, also if executed through jruby-1.6.0.

Monday, February 28, 2011

Fink FAQ: installing a few "unstable" packages from "fink"

Fink FAQ: installing a few "unstable" packages from "fink"

I don't exactly remember, when I configured fink to also install "unstable" packages, but now I think, that created a terrible mess on my computer. I ran "fink configure" today, and disabled the installation of "unstable" packages there. I hope, fink will work much smoother from now on. No more md5sum mismatches …

Tuesday, February 22, 2011

No Gnus v0.13 is released

No Gnus v0.13 is released

It seems to depend on EIEIO ("Enhanced Implementation of Emacs Interpreted Objects"), a new CLOS implementation; apparently EIEIO must get installed manually.
EIEIO in turn is part of CEDET ("Collection of Emacs Development Environment Tools").