Damon
Jan 28, 2021
Please welcome Damon Lynch, @damonlynch Anthropology PhD, photographer and developer of Rapid Photo Downloader
Jan 27 to Feb 03 on @imakefoss
Interview: https://t.co/q17g4Whuyr
@imakefoss is a Twitter rotation curation account, an interview blog and a YouTube channel. https://t.co/75YGlFmiun
Jan 28, 2021
Hi everyone I’m Damon and I’m going to be talking about a FOSS project I started in 2007, Rapid Photo Downloader. I’m going to be talking mainly about its evolution and what I learned along the way.
You are welcome to jump in with discussion on it or any other related topic! https://t.co/SewJemMUaL
Jan 28, 2021
Rapid Photo Downloader started out looking like this. It’s come a long way since 2007.
But some features and design choices made in version 0.0.1 have not changed since then. Which I think is kind of cool. https://t.co/jba2qwNs9E
Jan 29, 2021
Rapid Photo Downloader is a FOSS program for Linux that helps photographers get photos and videos off their cameras and onto their computers.
It is available in most Linux desktop distros, and at https://t.co/XkvjzWC5Hb
It is translated into more than 10 languages.
Damon https://t.co/iCRPadK0DP
Jan 29, 2021
I have written Rapid Photo Downloader primarily for professional photographers and advanced amateurs — the kinds of photographers who can download as many as hundreds of thousands of images at a time.
It works pretty well for less advanced needs too. https://t.co/fI988JyZtf
Jan 29, 2021
I’m a photographer myself. My initial motivation in 2007 to write the program was because I wanted a program to handle my own needs. I thought it would be useful for others too.
I do not know how many people actually use it because I do not collect any statistics about its use! https://t.co/PtD25Tlsyh
Jan 29, 2021
You might wonder why you need a special program to get photos and videos off a camera or phone onto your computer.
One reason is that a program like Rapid Photo Downloader can automatically rename your files to make them unique. You never need to get them mixed up again.
Damon https://t.co/CD7JWAvxPC
Jan 29, 2021
Another reason is that a program like Rapid Photo Downloader can remember what you previously downloaded from the camera, so you don’t need to download them again. No more duplicate files by mistake! https://t.co/Qtiwyded2D
Jan 30, 2021
A program like Rapid Photo Downloader is possible only because other developers have already written software libraries to handle tasks that can be less visible, but nonetheless absolutely vital. An example is python-pyexiv2, which Olivier Tilloy started in 2007.
Damon
Jan 30, 2021
If Olivier had not started his project, perhaps Rapid Photo Downloader would have never have gotten off the ground.
If Jim Easterbrook had not written python-gphoto2, then Rapid Photo Downloader would not be able to download directly from cameras and phones.
Jan 30, 2021
Being expert in something paradoxically often makes you blind to things that ignorant people easily see.
I will show why this true using anthropology as an example, and then show how it applies to software too.
Damon
Jan 30, 2021
Take your own culture. It is yours. Compared to outsiders, you are an expert in it. You take certain things for granted — you never think about them. For example, you almost certainly take for granted the concept of ‘left" and “right”, because these are part of your culture.
Jan 30, 2021
Some cultures think differently about direction and the position of things in space. They don’t think much if at all in terms of ‘left" and “right”, but using other methods, e.g. “my south-west hand” or “the building to my north.” To them that is perfectly natural.
Jan 30, 2021
The same applies when you develop expertise on a piece of software. You come to know it very well.
You take for granted what a hamburger menu is, for example. You forget when you had to learn that.
You know the sequence of steps you need to take to get things done it.
Jan 30, 2021
That is certainly true of application developers, and it is true of people who use the application a lot.
But it is not true of those who are new to the application.
That makes developing and supporting applications especially difficult at times.
Jan 30, 2021
Things you as an expert take for granted are foreign to those new to the application.
Things you forget you once had to learn, and are thus now blind to, are obvious to the new user.
Jan 30, 2021
The paradox of expertise making you ignorant is something I need to be constantly aware of when developing Rapid Photo Downloader and helping its users use it.
It’s a difficult problem.
Jan 30, 2021
What anthropology has to do with all this is that as specialists in culture, anthropologists who are foreign to a culture can quickly notice things about a new culture that cultural insiders don’t see.
It’s not all good though.
Jan 30, 2021
Sometimes aspects of a culture are known only by insiders who have the expertise needed to know it.
The same applies to software too, of course. Sometimes you simply need to develop sufficient expertise to be able to get by, and there is no escaping that.
Jan 31, 2021
Rapid Photo Downloader’s user interface has changed a lot since 2007, shown below. The very first version could download (import) only photos. The user interface was very basic and somewhat ugly. I lacked the right tools and the necessary imagination to do better.
Damon https://t.co/A9LBtFyhVs
Jan 31, 2021
At the request of users, Rapid Photo Downloader added the ability to download videos. The main user interface barely changed, apart from adding more options to the program preferences dialog (not shown below). Shown here is version 0.2.3. https://t.co/dtcXnGdsEl
Jan 31, 2021
The main window was transformed in version 0.3. Users could select files and apply Job Codes to them. Job Codes are names like ‘wedding" or “graduation” or a location that the user wants in the filenames or subfolders the program automatically generates. https://t.co/5gfKb4lPnj
Jan 31, 2021
Version 0.4 saw another change in the main user interface. By now I had figured out how to use the GTK toolkit’s icon view.
The program also became dramatically faster. Previous versions had become increasingly slow as more features were added, contradicting its name. https://t.co/sx4wJPVv33
Jan 31, 2021
Version 0.9, launched in 2017, saw the most dramatic improvement in the program’s user interface. Its user interface had new features, like a timeline. It was also easier to use. The program was faster than before.
It was also a lot of work to produce! https://t.co/jPTi0Ut6NI
Jan 31, 2021
@bryan_paget Me too! Ubuntu 8.04 had fantastic desktop wallpaper, a neat login sound, and an overall great vibe.
It’s remarkable how well it’s aged compared to something older like Windows XP.
Damon
Feb 2, 2021
Five years ago Rapid Photo Downloader switched from Gtk to Qt. I did so after reading an article on @phoronix that featured a speech by @_dirkhh detailing his reasons for making the switch.
The Phoronix article had zero comments on it. But it meant a lot to me.
Damon
Feb 2, 2021
There are technical and systemic reasons to favor Qt or Gtk, or to favor Linux, Windows, or macOS. But these reasons are only part of the picture. Just as important is the social psychology of their users & developers, because they form their own communities around them.
Damon
Feb 2, 2021
Communities are blessing and a curse. They are fundamental to being human so we’ll never not have them.
But by golly gosh can they be a so detrimental sometimes.
Feb 2, 2021
One core reason why is that people form their identity as part of the community they belong to.
They make competitive comparisons between their community and that of others, invariably in a way that favors their own. They go out of their way to exaggerate differences.
Feb 2, 2021
One of the most pernicious features of software communities is when they act against their own self-interest because they are stuck in the mode of being socially competitive.
A great example of this is technical standards that everyone should follow, like ISO standards.
Feb 2, 2021
It can be really difficult to get a software community to adopt a standard developed by another software community when members of one community start out with the attitude that members of the other community are stupid.
This attitude is prejudicial and helps no one.
Feb 2, 2021
The good news is that a healthy community overcomes these all-too-human tendencies.
People can learn from their mistakes in the fullness of time, too.
Which is why we have real standards today for Unicode, HTML, CSS, and so forth.
Thankfully!
Feb 3, 2021
Being able to right click on a file in Rapid Photo Downloader and have it opened & highlighted in the desktop’s file browser is a popular feature.
But guess what? There are by my count 10 popular Linux file managers, with 5 different approaches to highlighting the file.
Damon https://t.co/PTWEu9Jxxg
Feb 3, 2021
As a programmer I don’t care if there are 10 different file managers for Linux, or 100.
I just wish they all behaved the same, such that they offer a standard way to start browsing at a particular location and optionally highlight (select) one or more files.
Feb 3, 2021
I wish there were standards on the Linux desktop for this kind of basic functionality that all desktop developers followed.
Do we have the leadership in the community necessary to develop and maintain such standards? Standards don’t appear magically on their own.
Feb 3, 2021
A cool feature of Linux desktops is for an application launcher to show progress bars and a badge with a counter on it.
I’m unsure who first developed this feature on Linux. It might have been when Unity offered it, building on a similar feature seen in Windows Vista.
Damon https://t.co/9ylbhLdSwr
Feb 3, 2021
Predictably, although Ubuntu developed a shared library to handle this feature, other Linux desktop developers decided they liked the feature but wanted to implement it differently, with a totally different application programming interface (API).
Linux Mint, I’m looking at you.
Feb 3, 2021
As a programmer trying to write an application that offers the same functionality on all Linux desktops, learning that the Linux Mint developers had gone ahead and done it their own incompatible way was a real WTF moment.
Feb 3, 2021
The Linux Mint developers believe they’re doing what’s best for their own users. And indeed, their custom solution works for their own custom ‘X apps", as they call them.
The problem is it creates fragmentation and blocks everyone else from using the feature on Linux Mint.
Feb 3, 2021
@CarlKDE It works under Gnome too when libunity is installed and the desktop’s panel supports it. That’s the case by default in Ubuntu.
The library name ‘libunity" is misleading because it’s not specific to Unity. That has no doubt led to confusion among packagers and developers.
Feb 3, 2021
@CarlKDE Carl can I please ask a favor of you? Please pass along my thanks to the KDE developer(s) who implemented this in plasma. If that was you, thanks! 😀
Feb 3, 2021
I wish there was a way for application developers to respond to ratings and comments on applications left by users on Linux app stores.
It’s sad when a user rates an application ‘1 star" when the problem they faced can be quickly and easily fixed.
Damon
Feb 3, 2021
One aspect of programming FOSS is the rise in the last 10 to 15 years or so of awesome tools that solve (or at least mitigate) real problems faced by developers. The rise of git has been phenomenal. Editors like Pycharm are fantastic.
Damon
Feb 3, 2021
My time in charge of the IMakeFOSS Twitter account has drawn to a close. Thank you to @josp0001 for organizing things! Thank you for reading! @sramkrishna will be taking over the reins and I look forward to learning from him.
Damon