Project Ideas

Here are a few project ideas I would like to work on if I only had the time. As long as I’m not able to start them, you could interpret those suggestions as lazyweb requests, so you should feel invited to execute them, but please make sure that your results are freely/libre licensed, otherwise your work would be of no help.

  • A reminder web app with push notifications that works locally on the phone and only occasionally imports new events/appointments when an Internet connection is established. Many refugees fail to attend their appointments as they have difficulty to observe a weekly schedule. The web part needs to be self-hostable.
  • A self-hostable messenger implemented as web app. It could also interface with e-mail and display it as if mails were normal messenger messages. Many refugees have smartphones, but without relying on telephony, Facebook or WhatsApp, it can be difficult to get in touch with them. Often they’re not used to e-mail, which is more common among German people, companies and government offices. The web app would also work on open WLAN.
  • A new TODO/task manager: when a new TODO/task is added, it appears at the very top of the list, so the user can “vote” it’s priority up or down in order to make entries more or less important. If the user finds time to work on one TODO/task, he simply needs to start with the topmost one and stick to its completion. The tool should support multiple TODO/task lists, so entries can be organized in different topics/subjects.
  • A “progressive web app” app store that signs/verifies the submissions, catalogues and distributes them via “add to homescreen”, URL bookmarking, full download or other techniques. The idea is to create something similar to the distro repositories known in the free/libre software world and f-droid, demanding that those apps come with their code to avoid the SaaSS loophole. Features like user reviews or obligatory/voluntary payment to the developers could be considered, as well as crawling the web to discover existing web apps.
  • E-Mail to EPUB. E-Mail is .eml files in IMF format. I already have a few components and are currently trying to write a parser for IMF or find a no-/low-dependency existing one. In the future, that project could evolve into a semantic e-mail client (better than putting broken HTML into the message body) that retrieves and sends data to the server.
  • In Germany, the “Störerhaftung” finally got abandoned, so Augmented Reality and the Internet of Things get a late chance here too. Before, by sharing my flatrate-paid Internet access with neighbors and passersby, law would have considered me as a contributor/facilitator if a user committed an illegal action over my wire (basically, as investigators can never find out who’s at the end of a line, they cheaply just wanted to punish whoever happened to rent/own the line at that time or demand users of the network to be identified). In cities, there are a lot of private WLAN access points connected to the Internet, and almost all of them are locked down because of the liability, leaving Germany with pretty bad connectivity. With such legal risks removed, I can assume more and more gratis Internet access outside in the public, so I would like to develop an app where people can join a group and via GPS the app would display in which direction and in what distance members of the group are located. That way, if I’m in an unfamiliar city together with friends, family or colleagues, it’s easier to not loose each other without the need of phone calls or looking at an online/offline map. Such a solution needs to be self-hostable to mitigate privacy concerns, and enabling geolocation always needs to be optional. Deniability could come from lack of connectivity or the claim of staying inside a building, or the general decision of not using the app, joining groups but not enabling geolocation, or faking the location via a modified client. The app is not trying to solve a social problem, it’s supposed to provide the capability if all members of the group agree to use it. “App” is intended for AR glasses, alternatively the smartphone/tablet, alternatively a notebook.
  • Develop a library, self-hosted server, generic client and a directory of services for Augmented Reality that allows content to be delivered depending on the location of the user. That could be text (special offers by department stores or a event schedule), audio (listen to a history guide while walking through the city, maybe even offered in many languages) or just leaving notes on places for yourself or members of the family or group (which groceries to buy where), where the door key is hidden, long lists of inventory locations).
  • In my browser, I have lots and lots of unstructured bookmarks. If I switch to one of my other machines, I can’t access them. It would be nice to have a synchronization feature which could be extended to check if the links are still live or dead. In case of the latter, the tool could attempt to change the bookmark to the historical version of the site as archived by the Wayback Machine of the Internet Archive, referencing the most recent snapshot relative to the time of the bookmarking, hopefully avoiding the pro-active archival of what’s being bookmarked. On the other hand, a bookmark could also be an (optional?) straight save-to-disk, while the URL + other metadata (timestamp) is maintained for future reference. The tool could do additional things like providing an auto-complete tagging mechanism, a simple comment function for describing why this bookmark was set or a “private/personal” category/flag for links which shouldn’t be exported to a public link collection.
  • An XML interface for PoDoFo. PoDoFo is a new library to create PDF files with C++. With an XML interface, PoDoFo would become accessible for other programming languages and would avoid the need to hardcode PoDoFo document creation in C++, so PoDoFo could be used as another PDF generator backend in automated workflows. The XML reading could be provided by the dependency-less StAX library in C++ that was developed for this purpose.
  • Subscribe to video playlists. Many video sites have the concept of a “channel”, and as they fail to provide their users a way to manage several channels at once (combining messages and analytics from different channels into a single interface), uploaders tend to organize their videos in playlists, usually by topic. As humans are pretty diverse creatures and do many different things at the same time, I might not be interested in everything a channel/uploader is promoting, I would rather subscribe to a particular playlist/topic instead to the channel as a whole. This notion of course could be generalized, why not subscribe to certain dates, locations, languages, categories, tags, whatever?
  • Ad-hoc video playlists. Video sites allow their users to create playlists, but only if they have an account and are logged in. Sometimes you just want to create a playlist of videos that are not necessarily your own without being logged in, for instance to play some of your favorite music in random order. If such external playlists should not be public, access could be made more difficult by requiring a password first or by only being available under a non-guessable URL. Embedding the videos shouldn’t be too hard, but continuing with the next probably requires some JavaScript fiddling. Should support many video sites as sources via embedding.

If you’re not going to implement those ideas yourself, please at least let me know what you think of them or if you have suggestions or know software that already exists. If you want or need such tools too, you could try to motivate me to do a particular project first. Maybe we could even work together in one way or another!

This text is licensed under the GNU Affero General Public License 3 + any later version and/or under the Creative Commons Attribution-ShareAlike 4.0 International.

Goodbye, mobileread.com

On 2014-01-05, I joined the mobileread forum. At that time, I was just starting to work on automated EPUB generators for text in general and therefore appreciated that the people on the mobileread forum didn’t focus on reader hardware alone, but also had a fair share of technical discussion going on.

On 2015-04-03, somebody called Ranwhp asked in the German section of mobileread forums if there is a way to download all German titles of the Patricia Clark Memorial Library at once, which led me to look into it. The Patricia Clark Memorial Library is a collection of e-books uploaded by mobileread members and hosted by the mobileread site operators. Patricia Clark was one of the uploaders which passed away, and in memory of her, the collection was named after her. The collection has no real stewardship nor curation except what’s required by the law and forum rules, which is why I would hesitate to call it a library. The individual uploaders take care of their own uploads only as long as they’re still interested in them and the licenses vary from Public Domain over Creative Commons BY-SA-NC (nonfree) to all rights reserved and distributed by mobileread with special, non-transferable permission, rendering the work of the contributors and the collection as a whole pretty useless for anything other than personal entertainment.

For a downloader tool, such considerations were irrelevant, of course, so I started to develop one in order to help out Ranwhp and save him hours of manually downloading every single file. I myself did not have an interest in the ebooks themselves as I mostly do not read for entertainment purposes, I was primarily motivated by experimenting with client programming and EPUBs as found in the wild, to automatically read and transform them with code. The high quality of the XHTML page source code generated by mobileread’s forum software made it quite easy to follow the links and retrieve the actual ebooks, which is a good thing.

On 2015-05-01, I released the first version of my mobileread_wiki_ebook_list_downloader1 (md5sum eff1b8a28a0a9af8f6d5982cf7150ca8). In my post from that day, I pointed out that automatic downloads could be considered to be denial-of-service attacks and conflicting with the mobileread terms of use, which I tried to avoid right from the beginning by an enormous delay of 5 seconds between each download, making the client a very friendly, cooperative client in contrast to some rogue crawlers out there on the web. As far as I can tell, this was perfectly well for mobileread staff.

On 2015-05-11, Ranwhp provided his report on running my client: after 10 hours and 52 minutes, a total of 2728 files were downloaded with a zipped size of 1.8 Gigabyte. One day later, Ranwhp posted a link to Google drive where it was possible to download the Zip archive. On the one hand, his offer did not consider the legal obligations of the restrictive licensing of many titles from said collection, while on the other hand such an archive would save a lot of bandwith and server resources for mobileread. I immediately notified Ranwhp about the legal problems which might come with some of the ebooks, and he disabled the download link shortly thereafter. Until this point, no other members of the forum joined our conversation, and as soon as they did, they raised concerns about the legal status of the Zip archive in a friendly manner at first. Because of undiplomatic answers, lack of knowledge about copyright law and the assumption that the Patricia Clark Memorial Library would be 100% in Public Domain, things escalated quickly, as uploaders saw their rights violated. What followed was a long conversation about why a local, full copy of the library wouldn’t make sense and about the legal status of the collection, which are strange questions to discuss on a website dedicated to electronic reading. Some posts were quite constructive, other authors made clear that their approach towards media is set up in a way that prevents everything else from happening.

However, this incident with the uploaders didn’t affect the downloader software at all, so I continued development and started other controversial threads about the technical quality of the collection. Then, for a long time, silence. On 2016-09-29, Ranwhp revived the original thread and published a link to MR-eBook-Downloader, another downloader for German titles of the mobileread collection. Again, I immediately mentioned that the developer of this tool should better have a delay in place between each download, so mobileread server resources wouldn’t get used excessively. One day later, the entire thread was deleted without any explaination.

I asked mobileread staff to provide an explaination or to restore the thread, but until now I did not receive an answer. Therefore I decided today that I’ll leave mobileread and not look at their stuff again. I’m not angry or something, it’s more that I’m utterly confused about what happened to that thread after all this time, and I don’t like that my time invested into posting goes to waste within the blink of an eye. For me, this is another glaring example for the broken web we inhabit, and that technology can never become better than what the mentality of people is prepared to allow it to become.

This text is licensed under the GNU Affero General Public License 3 + any later version and/or under the Creative Commons Attribution-ShareAlike 4.0 International.