Archive for January, 2013

Graph Editor – yEd: Import of Graphs in [dot] Notation

Wednesday, January 30th, 2013

In the past, I have created data-flow graphs in dot notation.  Some of my colleagues still do.  The otherwise-fabulous yEd graph-tool is unable to open dot files.

However it turns out that someone has written a dot-to-XML convertor, to an XML format acceptable to yEd.

(more…)

Using CeltX to Author an eBook for Amazon Kindle

Tuesday, January 29th, 2013

Tried Scrivener.  It seemed ok at first but then got clunky.  My IT-illiterate girlfriend soon got into trouble using it.  So is there a better approach/tool?

I wondered about CeltX.  A web-search confirmed that it could be “persuaded” to act as basis for eBook authoring.  But how good is that approach in practice?  Only one way to find out – try it out!

Provided I remember, I will post my experience of it back as an append-edit to this very blog-Post…

(more…)

Graph Editor – yEd

Tuesday, January 29th, 2013

I wanted a graph editor where I could define the connectivity on-the-fly, including inserting new nodes partway along existing connections.  Something “fluid” to use.

I found it: yEd, available at http://www.yworks.com/en/products_yed_about.html.  Superbly slick, functional, multi-platform and free (gratuit), even for commercial use.

Main reason for wanting such a thing was to be able to document the media depenencies in a multimedia (e.g. video) project.  For example I might begin with an Adobe Premiere project based on raw footage.  I would document that in a connectivity-graph having a RawFootage node (object) with an arrowed line coming out of it and going into a Project node.  Later on, I might decide to enhance (e.g. CPU-intensively de-noise) the footage and then use that enhanced footage in the project instead (media-replace).  Such an intervention would not have been planned, it would have been an after-thought.  To bring my documentation up-to-date,  in my connectivity-graph, I would want to interpose an Enhance node in the existing footage-to-project connection.  Being able to do that in one single step would be great (no need for individual steps such as delete connection, add node, connect source to node, connect node to project).  Having made many such changes and additions over time, the diagram might become untidy and in need of rearrangement.  So ideally the application should offer Auto-Arrangement, to produce or at least provide a starting-point towards a tidier arrangement.

The same approach could apply to many things, including general brainstorming/mind-mapping, drama/story-design (prior to screenplays/scripts) and plain down-to-earth production of explanatory graphic diagrams as media themselves for incorporation in multimedia projects.

All this is way beyond the diagramming tool I have most used in the past few years, namely Visio – at least the (old) versions I have encountered.  I have dabbled with GraphViz, which auto-generates/arranges diagrams from formal connectivity (etc.) definitions in geeky formal notation.  GraphViz gets the job done but from my personal experience it is somewhat clunky and slow to use (involving frequent re-experiments and reading of lookup-notes).  I want something slicker, more “GUI”, more intuitive…

Haha!  Such a thing does exist!  I found it!  Not only does it allow the kind of graph-editing flexibility I am looking for, it can also import data from Excel etc. and auto-generate graphs from that.  So if I want I can document my connectivity/dependency information first in Excel or Notepad (say) with a view to generating a diagram from it at a subsequent stage.  And it is multi-platform (based on Java) and it is free (gratuit).

It is called yEd and is available at http://www.yworks.com/en/products_yed_about.html

(more…)

apt-get on Windows: win-get & Cygwin

Tuesday, January 29th, 2013

I want to run some python scripts, whose instructions state the need to run apt-get first.  The apt-get command is from unix-land, whereas I use mainly Windows.  How can this apparent obstacle be overcome?

I guess first I should try the “easy way”, i.e. get the script running on a unix machine e.g. a Mac}

Google:[apt-get windows 7]:

  • http://windows-get.sourceforge.net/ {No use to me}
    • {Naively, I thought it sounded like a Windows version of apt-get, but it is actually only inspired by apt-get, and is only for getting Windows applications such as FireFox.}
      • http://win-get.sourceforge.net/
        • Win-get is a automatic software installer and package manager for Windows, inspired by Debian’s apt-get tool. With win-get, downloading and installing an application to your computer is as simple as: win-get install firefox
    • win-get is an automated install system and software repository for Microsoft Windows written in pascal (for the command line client) and php for the online repository. The ideas for its creation come from apt-get and other related tools for the *nix platforms.
    • The system works by connecting to a link repository. Finding an application and downloading it from the stored link using wget.exe . Then performing the installation routine (silent or standard). And finnally deleting the install file.
  • http://wiki.debian.org/AptZip {Possible solution? e.g. run on a Mac then use the download on Windows?}
    • {Could this be an alternative?  Download on a separate computer and transfer to destination by memory stick etc.}
    • APT-ZIP is a package to update a non-networked computer using apt and a (removable) media (harddisk, USB key, ZIP drive…)
    • The apt-zip-list and apt-zip-inst commands simplify the upgrade process of a non-networked Debian host using apt , by using (preferably high-capacity) removable media, like a ZIP or USB drive.
    • You can use wget in Cygwin in the computer where you haven’t got installed Debian, to execute Apt-zip. Also you can run the script from a LiveCD.
  • http://www.cygwin.com/ {Better solution?  Needed in any case?}
    •  Cygwin is:
      • A collection of tools which provide a Linux look and feel environment for Windows.
      • A DLL (cygwin1.dll) which acts as a Linux API layer providing substantial Linux API functionality.
    • Cygwin is not:
      • A way to run native Linux apps on Windows. You must rebuild your application from source if you want it to run on Windows.
    • Latest Version & Windows Compatibility:
      • The Cygwin DLL currently works with all recent, commercially released x86 32 bit and 64 bit versions of Windows, with the exception of Windows CE and Windows NT4.
      • The most recent version of the Cygwin DLL is 1.7.17-1.
    • http://lifehacker.com/5433452/cygwin-17-adds-windows-7-support-and-many-improvements
      • Version 1.7 added Windows 7 compatibility.

Scripting: Python or Ruby? (& iOS Apps for Text/Script Editing)

Wednesday, January 23rd, 2013

I recently came across a handy script for recording streams.  It was in the scripting language python.  So I went to obtain it.  So far no problem.

But that got me thinking: I’d read somewhere a long time ago of python, or was it ruby (on rails or otherwise), being used to support broadcast or film digital production workflows. So first I wanted to confirm that, through web-search.  Then second I wanted to compare the languages, to see which one I felt best about.

Google:[python ruby workflow video production adobe avid]

  • http://devopsanywhere.blogspot.co.uk/2011/09/how-ruby-is-beating-python-in-battle.html
    • This is a really good article, I can see that for me, python is the obvious choice – more readable to me.  Furthermore:
      • Ruby’s greatest strength is its amazing flexibility. There is a lot of “magic” in ruby and sometimes it is dark magic. Python intentionally has minimal magic. It’s greatest strengths are the best practices it enforces across its community. These practices make Python very readable across different projects; they ensure high quality documentation; they make the standard library kick ass.
      • (For a particulat given simple example, <<The python example is far more readable and maintainable. >>
    • On the other hand (in favour of ruby):
      • If ruby reminds of perl, your eyes do not deceive you. In many ways it is the love child of perl and smalltalk.
        • In the past have had a very good experience of using smalltalk
      • every large program should have its own internal DSL suited to the problem space … it seems much easier to create DSL’s (Domain Specific Languages). Ruby certainly spawns DSLs with much greater frequency than python. No single pythonic build tool dominates the problem space like rake does in the ruby community. Most python projects seems to use setup.py for administrative tasks even though that is not its explicit purpose.
  • http://en.wikipedia.org/wiki/List_of_Python_software
    • Lists Implementations, Development Environments, Applications etc.
  • http://blog.eltrovemo.com/364/diy-broadcast-how-to-build-your-own-tv-channel-with-open-source-other-goodies/
    • DIY BROADCAST: How to build your own TV Channel with Open Source & other goodies
    • Loads of great links eg for screenwriting (Celtx), multicam recording (Ingex Studio), editing (EditShare LightWorks), archive (BackBlaze) and playout (OpenPlayout, MLT).  Also 3D modelling (Blender), color correction (DaVinci Resolve Lite), Live Graphics (CasparCG), Digital Asset Management (EnterMedia).  And more … but you get the drift…
  • http://doingthatwrong.com/home/2012/10/18/running-scripts-with-textexpander
    • Example scripting and, serendipitously, some recommended iOS (iPhone/iPad) apps for note-taking and html script production, namely Nebulous Notes and TextExpander (which can work together).

Gimp: APNG Plugin (To make animated PNG files)

Saturday, January 19th, 2013

Wasn’t looking for it, but found it at:

G’MIC: Image Processing Pipeline(s) Scripting Language

Saturday, January 19th, 2013

GMIC: An Image Processing Pipeline(s) Scripting Language
I found this by accident, but it looks really handy for “industrial-scale” image processing.

  • http://gmic.sourceforge.net/
    • G’MIC stands for GREYC’s Magic Image Converter. This project aims to:
      • Define a lightweight but powerful script language (G’MIC) dedicated to the design of image processing operators and pipelines.
      • Provide an interpreter of this language, distributed as a C++ open-source library embeddable in third-party applications.
      • Propose four different user interfaces for this image processing framework:
        • The command-line executable gmic to use the G’MIC framework from a shell
          • In this setting, G’MIC may be seen as a serious (and friendly) competitor of the ImageMagick or GraphicsMagick software suites
        • The interactive and extensible plug-in gmic_gimp to bring G’MIC capabilities to the image retouching software GIMP.
        • ZArt: a real-time interface for webcam images manipulation.
        • G’MIC Online, a web service allowing users to apply image processing algorithms directly from a web browser.
    • G’MIC is focused on the design of possibly complex pipelines for converting, manipulating, filtering and visualizing generic 1d/2d/3d multi-spectral image datasets. This includes of course color images, but also more complex data as image sequences or 3d(+t) volumetric float-valued datasets.
    • G’MIC is an open framework: the default language can be extended with custom G’MIC-written commands, defining thus new available image filters or effects. By the way, G’MIC already contains a substantial set of pre-defined image processing algorithms and pipelines (more than 1000).
    • G’MIC has been designed with portability in mind and runs on different platforms (Windows, Unix, MacOSX). It is distributed under the CeCILL license (GPL-compatible). Since 2008, it is developed in the Image Team of the GREYC laboratory, in Caen/France, by permanent researchers working in the field of image processing on a daily basis.
    • Main features:
      • G’MIC defines a complete image processing framework (provides interfaces for C++, shell, gimp and web), and can manage generic image data as other image-related tools. More precisely:
      • It can process a wide variety of image types, including multi-spectral (arbitray number of channels) and 3d volumetric images, as well as image sequences, or 3d vector objects. Images with different pixel types are supported, allowing to process flawlessly images with 8bits or 16bits integers per channel, as well as float-valued dataset.
      • It internally works with lists of images. Image manipulations and interactions can be done either grouped or focused on specific items.
      • It provides small but efficient visualization modules dedicated to the exploration/viewing of 2d/3d multi-spectral images, 3d vector objects (elevation map, isocurves, isosurfaces,…), or 1d graph plots.
      • It is highly extensible through the importation of custom command files which add new commands that become understood by the language interpreter
      • It proposes commands to handle custom interactive windows where events can be managed easily by the user.
      • It is based on the latest development versions of the CImg Library, a well established C++ template image processing toolkit, developed by the same team of developers.

Gimp: Wavelet-Based (& Other) Plugins for Gimp v2.8

Saturday, January 19th, 2013

There exist Wavelet-based filters/plugins for Gimp.

Simplest to use are the Wavelet Sharpen and Wavelet Denoise filters.  Nevertheless, the following text-tutorial for Wavelet Decompose filter, provides a useful grounding in the pragmatocs of what wavelets are (in our image-editing-in-Gimp context).

I stumbled upon the following Forum thread, including a download (Zip file) of a number of filters compatible with Gimp v2.8, including Wavelet-based ones.  Here’s the link:

Once installed, the Wavelet filters are available in Gimp’s Menu:

  • Wavelet Sharpen in [Filters > Enhance]
  • Wavelet Denoise in [Filters > Enhance]
  • Wavelet Decompose (into Gimp Layers) in [Filters > Generic]

Gimp Plugin: MathMap

Saturday, January 19th, 2013

The MathMap plugin for Gimp provides:

  • A sophisticated scripting GUI+Language, specialised for graphics in Gimp+MathMap.
    • e.g. One can peek individual pixels, run Mandelbrot algorithms, in very concise code.
  • An assortment of processing functions written in that language
  • A Graphical Nodal filter-application editor

Example Scripts and Visual Results:

Video (Screencast) Presentations:

  • Demo of the MathMap Composer
    • Inaccessible (as of 2013-01-19) since it is a Private video (on YouTube).
    • Alternative demo.
    • And another demo.
  • Introduction to the MathMap Language
    •  Inaccessible (as of 2013-01-19) since it is a Private video (on YouTube).
  • MathMap Cocoa Introduction
    • Inaccessible (as of 2013-01-19) since it is a Private video (on YouTube).
  • New features in MathMap 1.3.4
    • This one is accessible.

Explanatory Websites (BUT see further below for special required installation procedure instructions for Gimp v2.8):

Download & Installation instructions

(more…)

Update Gimp (2.6 to 2.8)

Saturday, January 19th, 2013

I updated my existing Gimp 2.6 to the latest version, 2.8.

Information on plug-ins (plugins) and the “Plug-ins Registry” (a central but non quality-or-safeness guaranteed repository):

Smalltalk (Object-Oriented Programming Language)

Tuesday, January 15th, 2013

I used to use this language back in 1990.  It matches my way of programming fairly well.  Now I have some concepts I want to try out, so what’s available now?  What’s best and free or low-cost?  Is a development environment for it available in the form of an iPad app?  Or can it be used produce iPad apps?

Google [best version of smalltalk]:

Now about iOS (iPhhone/iPad) devices:

Being as I am mostly Windows-based, I’ll give Dolphin Smalltalk a go…

Image/Frame Stacking

Thursday, January 10th, 2013

Image-Stacking: motion-compensated superimposing (eg by averageing) of objects in a set or sequence of images

I’ve traditionally used RegiStax, currently at version 6.  It works, but I wonder if there are any alternatives, since:

  • It is a little clunky and crashy.
  • It only seems (unless I’ve missed something) to do plain averaging, not more robust (to noise and blurring) such as median or motion-estimated deconvolution etc.
  • It works on the basis of tracking-points, not textures (as does Mocha). Textures are more robust.

I’ll give AstroStack a try.

(more…)