Mozilla Firefox, Web browser
Warning about Google Chrome: it does not (and cannot be told to)
automatically look for the latest version of a Web page when
you click on a link that you've visited before; you need to
do a Refresh to get the latest version
(ref);
Google in their wisdom do not consider this to be a bug
(ref).
OpenOffice.org/LibreOffice suite
includes word processing, spreadsheet, drawing, presentation, database
and equation editor.
Zotero works within Firefox
to grab bibliographic information from Web pages and
store it in a searchable database along with
notes and attached files; a Zotero extension for
OpenOffice.org Writer allows one to insert formatted
citations and bibliographies into a Writer document.
Recoll is a
‘is a desktop full-text search tool’
based on the Xapian
search-engine library.
For Linux, MS Windows and Mac OS, under GPL licence.
The Windows version ‘lacks a few goodies’ and
a small payment is requested for downloading it.
Getting the Mac version seems messy.
Note-taking (free & open-source, multiplatform):
Joplin:
for notes and to-do lists; notes organized into notebooks;
notes are in Markdown format, can be modified with any text editor.
Supports encryption.
Standard Notes:
encrypted;
multiple non-free extensions include editors for Rich Text, Markdown,
LaTeX, etc.
Open Food Facts
is a ‘collaborative, free and open database on food products
of the entire world’. It is used by Energize.
Food products can be added to both Open Food Facts and Energize
by scanning
UPC and EAN barcodes.
Ghostscript:
Good for viewing PostScript (PS), Encapsulated PostScript (EPS)
and PDF files. Ghostscript itself is a command-line viewer.
Once you've installed it, you can install GSview which has a GUI.
Alternatively, once Ghostscript is installed, you can
set it up as a plug-in for Gimp by copying
gswin32c.exe to some directory specified in
the Path environment variable or by defining
an environment variable GS_PROG which points
to gswin32c.exe.
Tools for collaborating on text
(these look interesting but I haven't used them):
ProjectLibre is
open-source project-management software, meant to replace
Microsoft Project. ProjectLibre is a fork of the
older OpenProj. They have a .org URL but it forwards
to their .com site. They are actively working on
a cloud version, which will not be free, but in the meantime
are asking for donations. A login is required to read the
documentation on a wiki. They claim a very large number of
downloads from many countries, but the Bug List and General Discussion
forums are low-activity and many posts are never responded to,
and the blog has very few posts. I have no current need for
project-management software and haven’t tried this software
myself.
OpenOffice.org Draw is another
general-purpose 2-D drawing programme
Calligra Karbon
is a vector drawing application.
Calligra Flow
is a diagramming and flowcharting application.
The are descendents of the KDE KOffice suite.
I haven't tried either one.
Dia
is a 2-D drawing programme specifically for
diagrams such as flowcharts and circuit diagrams with symbols
connected by lines and arrows. Many different
symbols are available, and custom symbols can be created.
The native file format is XML, normally compressed with GZip.
QCAD: 2-D;
I haven't tried it yet;
an open-source ‘community edition’ is available.
Gravit is a free vector-graphics
programme written in JavaScript. It apparently belongs to Corel
now, and there is a confusing jumble of free (at least zero-cost)
and non-free products (Gravit Designer, Gravit Designer PRO,
Gravit Klex and Gravit Cloud) and URL’s.
It seems that the free version doesn’t support off-line use.
I haven't tried it.
UniConvertor
is a vector-graphics translator using the engine from
sK1.
Input formats include CDR (CorelDraw), output formats include SVG.
As of 2007 Jun 22, not yet available separate from sK1.
CADEMIA:
open-source CAD software written in JAVA;
the built-in help didn’t work (2009 Aug 30) but
there’s on-line documentation.
Archimedes:
‘An architecture open CAD’.
Last update 2018 Oct 27, labelled as abandoned.
Open-source ‘community edition’ of commercial programme.
Version 2.0.5 in Debian Etch, and is still the latest GPL
version as of 2009 Aug 11; GPL version is for *n*x,
commercial version is for Windows, *n*x and Mac,
version 2.2.2 as of 2009 Aug 11
Xara LX:
an under-development GPL-licensed port to Linux and Mac
of Xara Xtreme, an
inexpensive commercial draw and paint programme for MS Windows
ggplot2
in R is based on The Grammar of Graphics
(Wilkinson et al., 2005);
plotnine in Python
is based on ggplot2 and uses Matplotlib as the plotting backend.
Grace
‘is a WYSIWYG 2D plotting tool’, primarily for
*n*x; the download link times out (2021 Jan 24).
GPL. Available in Debian (based on version from 2015 Feb 17).
Multiplatform versions include
GraceGTK
(forked from grace-5.1.22 in 2009;
last update 2020 Dec 24, as of 2021 Jan 24)
and QtGrace
(last update 2017 Feb 5).
The plot layout can be edited using a GUI, and then saved in
a text file separate from the data.
PGPLOT
Graphics Subroutine Library,
‘a Fortran- or C-callable, device-independent graphics package
for making simple scientific graphs’.
Mainly for *n*x and MacOS, some support for Windows.
Copyrighted but ‘freely available for non-commercial use’.
Latest version 5.2.2 dated 2001 Feb 26, as of 2021 Apr 4.
Versions for MS Windows include one using GrWin as the driver.
GrWin,
‘a graphics programming environment on 32/64-bit Windows platforms
composed of the GrWin Graphics Server, grwin.exe, and the GrWin ToolKit,
from which free graphics routine libraries for Fortran and C/C++
can be created’.
Latest version 1.1.1 dated 2016 Mar 25, as of 2021 Apr 4.
The server is ‘free for non-commercial use’ but the
source is not available;
the toolkit is ‘free open source’.
D3 is a JavaScript library for
visualizing data using HTML, SVG, and CSS.
(I haven't used it yet.)
Plotly:
libraries for use in JavaScript (built on D3 & stackgl), Python and R.
Free & open source.
Company based in Montréeal, also has commercial products.
(I haven't used it yet.)
Q8/Q16.
ImageMagick for MS Windows is available in
Q8 and Q16 versions,
for 8 or 16 bits per pixel component, respectively.
The Q16 version can handle 16-bit images without loss
of information but requires more resources.
*n*x and Mac versions seem to always be Q16.
The QuantumRange constant is
255 for Q8 or 65535 for Q16.
Problem (as of 2011 Feb 12, version 6.6.7.6):
the 64-bit version of imdisplay crashes if invoked
with a filename on the command line or via a context menu, but
works OK if invoked from the command line with no filename;
see
problem report and developer's response from 2010 Nov.
Levels.
There are several related options for adjusting
brightness and contrast:
-level black_point{,white_point}{%}{,gamma}
(specifying values between zero and QuantumRange.
-auto-level
(= -level operator
with minimum & maximum pixel values used)
-contrast-stretch black-point{xwhite-point}{%}
(specifying numbers of pixels)
-linear-stretch black-point{xwhite-point}{%}
(a combination of -contrast-stretch
and -level)
A print-out of the image’s
histogram can be produced with the command
convert filenameIn -define histogram:unique-colors=true -format %c histogram:info:-.
An image of the histogram can be produced with the command
convert filenameIn -define histogram:unique-colors=false histogram:filenameOut.
DICOM.
To look at the histogram or adjust levels for a DICOM file,
the option
-define dcm:display-range=reset
must be given first to override the window-center and window-width
settings specified in the file.
DICOM images often have more than 8 bits/channel.
To extract JPEG images from such a file, it is necessary to
collapse the pixel data down to 8 bits/channel
(i.e., 8 bits/pixel for grey-level images,
which have a single channel).
One approach is to examine histograms to determine what the
grey-level distribution is. For example, if there is a separate
DICOM file for each slice of a stack, the ranges of minimum
and maximum values can be obtained with 2 commands that dump
the values into text files:
identify -define dcm:display-range=reset -verbose *.dcm | grep -A 2 "Overall:" | grep min > min.txt
identify -define dcm:display-range=reset -verbose *.dcm | grep -A 2 "Overall:" | grep max > max.txt
The overall range can be determined by examining the
.txt files, possibly sorting them.
(There is probably a more elegant way of doing this.)
The files can then be converted to JPEG by giving the command
mogrify -define dcm:display-range=reset -level 48%,55.5% -quality 95 -format jpg *.dcm
Some trial and error may be required to determine the best levels.
The value of 95 for -quality
probably results in negligible information loss for most applications
(especially given that the reduction to 8 bits has already thrown away
a lot of information).
Video.
See note below about
video handling in ImageMagick.
nomacs is primarily a nice image
viewer, with some editing capabilities. GPL, multiplatform.
XnView is an image viewer
and editor that read hundreds of formats and writes tens of formats.
Free for non-commercial use, multiplatform. I thought it would be
useful but I ended up falling back on GIMP and ImageMagick.
Krita (which I haven't used yet)
is intended to be more a painting and sketching programme than
an image-editing programme. It is part of the KDE-based Calligra suite.
Jeffrey Friedl's Web-based
Image Metadata Viewer
uses ExifTool to provide an on-line viewer of meta data, including
an indication of the camera's location, direction and field of view
based on Google Maps (see example at right). (As of 2017 Jan, and
still the case in 2019 Feb, the display of location on a map is
still available, with other map sources in addition to Google Maps,
but the direction and field-of-view are not shown.)
Stitching tools
Hugin
panorama photo stitcher.
Powerful, flexible, with a lot of automation.
As of 2024 Aug 18, latest release is 2023.0.0 dated 2023 Nov 11.
Stitch Panorama,
Thomas R. Metcalf’s GIMP plug-in written in Python.
As of 2024 Aug 18, latest release is dated 2013 Apr 1.
(I haven't yet tried this.)
Generating random noise: see
Perlin noise,
which looks ‘natural’ but apparently includes
‘a lot of 45 and 90 degree parts’
(ref);
its successor
Simplex noise, also by Ken Perlin, patented for 3-D and higher;
and
OpenSimplex noise, created to avoid the patent issues.
PosteRazor:
‘cuts a raster image into pieces which can afterwards
be printed out and assembled to a poster’.
GPL, Linux/OSX/Windows.
VLC media player:
free, open-source, cross-platform.
See also VLC for audio below.
To make the player stop at the end of a video clip
instead of leaving the clip and displaying the VLC icon, do
Tools ► Preferences ► Interface
and check the box Pause on the last frame of a video.
Type n to then play the next video.
To control whether the video clip loops continuously or not,
use the icon with the pop-up text saying
Click to toggle between loop all, loop one
and no loop. The icon takes on three subtly different
forms:
to loop through all clips in the playlist
(‘pressed’ button),
to loop through just the 1 current clip
(‘pressed’ button with ‘1’), and
don’t loop
(‘unpressed’ button).
vnc2flv
screen recorder for Unix, Microsoft Windows and Mac. Once installed,
it is run from the command line. See the Web site for clear
instructions. Requires a VNC server (e.g.,
TightVNC
or SSVNC)
to be running.
List of open-source video downloaders.
I have tried youtube-dl,
a Python-based command-line application;
it has many options, but in the simplest
case just run the executable and on the command line
specify the URL of the video to be
downloaded to the current working directory.
If the resulting file produces audio but not video, it may be because
separate video and audio files were downloaded and then the
post-processing merge process went wrong;
use of the -f best option forces a combined
video+audio file to be downloaded. youtube-dl-gui
(installed as Youtube-DLG)
provides a GUI for youtube-dl.
Video editing
OpenShot:
GPL, available for Linux, MS Windows and Mac.
It is in main Debian repository.
Audio and video can be separated. The result is a bit confusing
at first because the multiple resulting clips are on top of
one another in the same track.
To remove a segment of a video:
right-click at one point in time and use the
Slice tool with
Keep both sides;
do the same at a second point in time;
then select the segment to be removed and
press the delete key.
The generally recommended video export settings are
MP4 format (mp4),
h.264 video codec (libx264) and
AAC audio codec (aac)
(ref).
These are the default export settings
if the Profile
is set to All Formats in the
Simple tab of
File ► Export Project ►
Export Video.
LiVES:
GPL, primarily for Linux; it's possible to build for Mac;
support for MS Windows was due ‘later in 2019’
but is not available yet as of 2021 Apr 14.
Latest version as of 2022 Nov 11 is 3.2.0 dated 2020 Nov 8.
The following command does frame optimization, potentially
resulting in a much smaller GIF file: convert filename.gif -coalesce -layers OptimizeFrame filename_opt.gif
When I used convert to combine a set of still images
into a video clip, the resulting .mpg file worked
well but .flv and .avi were not viewable
in other players (2011 Feb 12).
openAviToGif
specializes in converting AVI files to animated GIF's.
Executable is provided for MS Windows, as well as the source code.
Licence is GPL.
As of 2015 Jun 21, latest version is 0.6 dated 2014 May 20.
For one set of AVI's it worked very nicely; for another set it produced
garbage but ImageMagick succeeded.
Tesseract-OCR:
free/open-source, for Linux, MS Windows and Mac OS X;
as of 2011 May 17, latest version is 3.00.1 dated 2010 Nov 5.
gImageReader is a nice GUI for Tesseract;
as of 2021 Jun 19, latest version is 3.3.1 dated 2019 Jul 28.
Tesseract comes with zero, one or more language-specific
‘trained data’ files, depending on how it's installed.
Language data can be
downloaded and installed, or languages can be installed
from within the installer for Windows, either when first installing
or by rerunning the installer to specify different languages
(which appears
to do more than just put the .traineddata files in
place, since gImageReader didn't work with Japanese after I'd
tried adding it by doing that).
gImageReader comes with no spelling dictionaries installed.
The manual describes how to install the required .dic
(dictionary) and .aff (affix) files.
OpenOCR:
based on Cognitive's Cuneiform, which was made open-source
2007 Dec 12. As of 2011 May 17, latest version is 0.1.0
dated 2009 Feb 14. I've used this quite successfully.
Binary download for Windows only.
OCRopus:
free/open-source, no binary downloads provided;
as of 2011 May 17, latest 'official' version is 0.4 dated 2009 May,
but there is a version 0.4.4 dated 2010 May and
active development is going on.
I haven't used this.
See DIY Book Scanner
for information about book scanning, both hardware and software,
including OCR.
Audacity,
an audio editor (and recorder); free, open-source, cross-platform.
See FAQ re MP3 export problems.
See Edit ► Preferences ►
Recording to enable sound-activated recording.
Kid3,
for editing ID3 tags in MP3 and other audio files;
free, open-source, cross-platform
VLC media player:
free, open-source, cross-platform.
See also VLC for video above.
To rip a track or all tracks
from an audio CD:
Media ▶ Convert/Save
Select the Disc tab,
select Audio CD, make sure the
correct disc device is selected.
Under Starting Position set the
desired track number. If the track number is set to zero,
it will rip all the tracks; sometimes I seem to get all of the
tracks into a single file, and sometimes only the last track.
Click on Convert/Save
In the Convert dialogue window,
use Browse to specify the destination
file. (It doesn't remember where you went the last time.)
Specify the filename extension (e.g., .ogg.
Under Settings specify the
profile corresponding to the filename extension
(e.g., Audio - Vorbis (OGG)).
Edit the profile if desired. Click on Start.
There doesn't seem to be a way to get it to rip all of the tracks
into separate files.
Clementine
music player and library organizer: free, open-source, cross-platform.
Amarok is an alternative.
Apparently some people didn't like the changes in Amarok 2, and
Clementine is ‘inspired by’ Amarok 1.4. Clementine
uses Qt, Amarok uses KDE. See Bruce Byfield's
comparison.
As of 2011 May 8, Clementine can't play or rip from an audio CD.
I chose to use Clementine because Amarok doesn't yet really
support MS Windows. The edit-track-information feature
seems a little flaky: in addition to some transient issues, I could
not get some manually entered album-artist information to stick.
Jeremy Sanders'
Scripting and Programming Languages,
a concise overview aimed at graduate students
needing to do scientific programming
(contains some language errors; doesn't mention Octave/MATLAB)
Codecademy
provides free lessons on coding in multiple languages,
with optional paid features.
See Matthew Hughes’
post (2015 Dec 2) on the disadvantages of learning to code using Codecademy:
it teaches syntax but not things like approaches, style,
algorithms, philosophy, and the coder’s ‘mindset’;
and it doesn’t review and reinforce topics.
VirtualBox is a virtualizer
for x86 and amd64/intel64 hardware, that is, it allows one to run
a guest operating system under a host operating system.
PuTTY -
free ssh client by Simon Tatham. Also includes sftp and scp
clients. Download installer for Windows and run it.
Or download putty.zip for Intel x86,
unzip it in, e.g., \Program Files\PuTTY\ and
(if desired) set up an icon for putty.exe. Run PuTTY.
Right-click on window title bar to get PuTTY Configuration dialogue
box. Set desired default settings within different categories, e.g:
Session: Protocol = SSH
Session:
Close window on exit =
Always, if desired
Window:
Rows = 36
Lines of scrollback = 2000
Window ▶ Appearance:
font = Lucida Console, size = 9
Window ▶ Colours:
Default Foreground = 0/0/0
Default Bold Foreground = 255/0/0
Default Background = 255/255/255
Default Bold Background = 255/255/85
Connection ▶ Data:
Auto-login username, specify if desired
Connection:
Seconds between keepalives = 300, if desired
Select category Session, select
Default Settings, click on Save.
To create a profile for a particular host, using the current
default settings,
enter a host name, then type a profile name under
Saved Sessions and click on Save.
To create an icon which runs a PuTTY session with a particular
saved profile, create an icon for
putty.exe and then add @profilename to the
command line within the shortcut definition. Certain settings
can be changed
during a session by right-clicking on the title bar and selecting
Change Settings. To get to the full Configuration
dialogue box from within a session, right-click on the title
bar and select New Session.
Note that a host may well have security settings
that prevent connection unless, for example, a VPN session is used.
OpenSSH
is a free implementation of the Secure Shell protocol
for encrypted communication between computers. The Debian
packages ssh-client and ssh-server
provide the ssh, scp and sftp clients
and the sshd server, respectively.
The -X option for ssh
enables X11 forwarding, so remote
applications can display their graphics on the local machine.
SSHFS:
A *n*x client that uses SSH FTP to permit mounting a remote filesystem.
Available as the sshfs package in Debian.
win-sshfs
is a similar client for MS Windows.
SSHFS seems to be very vulnerable to freezing, and thus freezing all
Nautilus windows and sometimes even terminal windows,
presumably because it encounters
some kind of problem with the network connection, although it's
not always clear what the problem is. Things can be unfrozen
by using kill -KILL on the sshfs process.
WinSCP
is an open-source SFTP (SSH File Transfer Protocol) and
SCP (Secure CoPy) client for MS Windows.
To delete a session
from the list of stored sessions, do
Session ▶
New Session;
in the list of sessions on the
left, select one and do Manage ►Delete.
Note the semantic overlap (not to say confusion)
between session and site.
To be able to open files in the normal way by double-clicking,
go to Options ► Preferences
► Editors, click on Add
and choose Associated application.
Then use the Up button to move
Associated application
to the top of the list.
To be able to see ‘hidden’ files (*n*x files whose
names start with ‘.’) go to
Options ► Preferences ► Panels
and select Show hidden files.
WinSCP's configuration settings can be stored in either the
Windows registry or, for portability, in a .ini file.
See Options ► Preferences ►
Storage ► Configuration storage.
Info-ZIP,
including Zip and UnZip, and also WiZ,
a Zip/UnZip graphical front end for Windows.
The
Windows binaries
may be a bit hard to find sometimes.
Note that a self-extracting archive can be created just by
concatenating a special version of UnZip
(unzipsfx.exe for Windows)
with a regular .zip file. For example, to build a Windows
executable under *n*x:
cat unzipsfx.exe name.zip > name_sfx.exe.
UnRAR is a
command-line
unpacking utility for the RAR format; freeware, source is available.
7-Zip
‘is a file archiver with a high compression ratio’.
Its main claim to fame is the 7z format but it also supports
other compression formats and claims better compression
than other software.
Executables are provided for MS Windows and (unofficially) for
Linux and Mac OS X, as well as the source code.
Debian packages p7zip, p7zip-full
and p7zip-rar are available.
Licence is GPL.
As of 2020 Dec 3, latest version is 20.02 alpha dated 2020 Aug 8.
Meld:
for graphically displaying
2- and 3-way comparisons of files and directories, also does merges
and can handle version-control systems; free, open-source, cross-platform.
As of 2021 Aug 9, the latest release is 3.20.3 dated 2021 Feb 13.
After a new install of Windows 10, double-clicking the .msi
installer resulted in a failure when it couldn't modify the registry,
but it worked when I ran PowerShell as Admin and invoked the
.msi file from the command line.
By default, Meld installs itself in
AppData\Local\Programs\Meld\
rather than the usual Program Files.
Disk-usage analysis
(visualizing the contents of a disk;
* indicates inclusion in Debian)
Conceptually related to
DiskMapper
(commercial but inexpensive,
of which I have 1 copy) and
SequoiaView,
both being for MS Windows only.
K4DirStat*:
free, open-source, for *n*x.
This is a descendant of
KDirStat,
of which
WinDirStat
is a clone for MS Windows. I can't figure out how to tell it
to process the entire file system starting from the root.
GNOME (and MATE)
Disk Usage Analyzer
(Baobab)* (I can't figure out how to tell it not to cross
file systems)
Filelight*:
has a setting to prevent crossing of file-system boundaries
but it doesn't seem to work
GdMap*: doesn't display
directory tree in addition to the map
The locale-gen and bleachbit packages may be
useful for cleaning up unnecessary files.
T-Clock is a
nifty free and open-source utility that modifies the Windows taskbar
clock so it very flexibly displays the date as well as the time.
It also provides timers, timed alarms, a configurable pop-up calendar
and other features.
Apparently it was originally written by Kazubon in the early 90's,
and was later worked on by Dale Nurden, Two_toNeStoic Joker and ygoe,
and, most recently as of 2019 Jan 4, as far as I know, by White Tiger.
(Windows 7 itself can display the date along with the time
in the system tray but only if the taskbar is set to double height.
Windows 10 can squeeze the date and time into a single-height taskbar but
without the day of the week, and overall much less flexibly.)
I installed it by unzipping the downloaded file and running
Clock64.exe.
It provides an easy option to be
automatically started when Windows starts.
T-Clock doesn’t work under Windows 11 without 3rd-party help
(ref).
CapsLock Indicator is a
‘small, free utility that indicates the state of the Num lock,
Caps lock and Scroll lock key[s]’ for MS Windows.
It is useful if one’s keyboard doesn’t have lights for the
caps-lock and num-lock keys.
In addition to the other possibilities for customization,
one can
customize its system-tray icons by placing
appropriately named .ico files in the same directory
as the executable. I have created what I think are more visible icons
(assuming a dark background for the system tray) for
Caps On and
Num On.
To have the icons actually displayed in the system tray, do
Settings ► Personalization ►
Taskbar ► Select which icons appear on the taskbar
CLI sets itself to start at startup by adding itself to the Registry at
Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.
Open Hardware Monitor
(free and open-source)
‘monitors temperature sensors, fan speeds, voltages, load and
clock speeds’ for MS Windows and x86-based Linux.
The sensor data can be used with Python via DLL or WMI
(refs 1,
2).
GnuWin32
‘provides Win32 (MS Windows 95 / 98 / ME / NT / 2000 / XP) ports
of tools with a GNU or similar open source license’,
including grep, gzip, tar, and many others. After installing
one or more of the utilities, add
C:\Program Files\gnuwin32\bin
to the system environment variable Path.