In Part III of my Bash scripting adventures I’ll write a script rename all .jpg files in a folder.
My third post on Bash scripting. This time I used a loop in the script. It’s still a simple script but also a very useful one. I regularly import photos from my digital camera or from my smartphone. The file names of these photos are either a number or a random string of characters. I like to rename these photos to give them a more meaningful name for instance summer2018.
The script lets me choose a folder and next asks for a file name. Then the script determines whether the folder exists and if it does it copies all .jpg files and gives the copied files a new name and a number starting with 0 and increasing the number with one for every photo in the folder. The files are copied so the old files still exists just in case a mistake was made. If I’m satisfied I delete the original files manually.
Question: I’d rather have a file name number with three decimals starting from 000 but I haven’t got I clue how to do that. Any ideas?
If you want to use this script, copy the code below and paste it into an editor like vim, vi or Geany. Save it e.g under the name rename and make this file executable by typing.
chmod 755 rename
To run the script just type.
2 # written by Eric Buijs 29 januari 2019
3 # rename changes all the jpg files in a user specified folder
7 read -p 'type the name of the folder here (e.g: /Users/myname/Documents): ' dname
9 read -p 'type the new name of the files (without extension): ' fname
11 if [ -d $dname ]
13 echo directory exists
14 cd $dname
15 echo $dname
17 for file in $files
19 cp $file $dname/$fname$counter.jpg
23 echo directory does not exist
26 echo 'All done'
News is spreading that Google will replace classic Hangouts with Hangouts Chat and Hangouts Meet. Since Google had already decided to close G+ forcing me to look for an alternative this was a good moment replace Hangouts with a FLOSS alternative. I’m pretty happy with the Fediverse social networks as a replacement for G+ but I haven’t been able to find a chat service in the Fediverse. Luckily the’re other FLOSS options. Two of those are Matrix and Movim. I briefly checked the Riot client of Matrix as a guest so I can’t tell much about it. Maybe later more on that. I’ve spend a considerable amount of time with Movim which is actually more than just a webbased chat service. Movim is a distributed social network built on top of XMPP.
XMPP is a communication protocol. It is, unlike for instance ActivityPub, a real-time protocol and therefore suitable for message oriented services like chat or IM. It’s an open protocol so any developer willing can use it in his/her application. There’s a sizeable list of application that support XMPP ranging from apps for the mobile phone to web oriented services.
Being build on top of XMPP, Movim has a good chat capability. You can create a public chatroom that anyone can join or have a private chat with another person. It also enables the user to create a community (or more) and a news stream. An advantage of Movim using the XMPP protocol is that with an Movim account you’re able to communicate with anyone with an XMPP account not just with Movim. To give an example I’ve been exchanging messages with someone that uses a Friendica server with a XMPP addon.
Movim is completely federated due to the underlying XMPP protocol which means that even when a server goes down the network keeps functioning and you’re still able to chat with your friends, as long as they were not logged into that specific server of course. The federated structure also provides privacy for the user. Your information is kept only on your XMPP server and information is being shared with other servers only if you decided to share it.
In the current version of Movim (0.14) end-to-end encryption is not implemented but it is planned for the next version. This means that currently Movim is not suitable if you need secure communication.
In Part II of my Bash scripting adventures I’ll write a script to resize an image.
As a follow up on my Bash scripting efforts that I started this year I wrote a script that resizes a photo to a specified width in pixels. The script should work both on Linux and OSX (tested on OSX, will test on Linux later). For this script to work ImageMagick needs to be installed. The script tests if an argument is specified (the original photo of course), if ImageMagick has been installed and if the file output.jpg exists. If output.jpg exists the user gets the option to overwrite the existing file or exit the script. Finally the user needs to specify the width in pixels of the output.jpg.
If you want to use this script, copy the code below and paste it into an editor like vim, vi or Geany. Save it e.g under the name resize and make this file executable by typing.
chmod 755 resize
Now if the photo is in the same folder as the script just type.
# written by Eric Buijs 12 january 2019
if [ $# -eq 0 ]
echo You need to specify a file.
echo e.g: resize photo.jpg
if [ ! $(which convert) ]
echo This script requires Imagemagick!
echo You can download it at http://www.imagemagick.org/
if [ -e output.jpg ]
echo output.jpg already exists.
read -p "Do you want to overwrite it? (Y/N) " answer
if [ $answer = "N" ]
read -p "What is the desired width in px: " width
convert $1 -resize $width output.jpg
If you’re still looking for an alternative social network to replace G+ here is a guide to the Fediverse that helps you choose.
Time is running out for GPlus refugees. G+ will close on April 2nd. So to help people that haven’t decided yet where to go in the Fediverse I made some pointers.
I divided this guide in a number of sections. Each section describes a certain use of social networks and which networks are most suitable for this specific use. Combine this with your preferred use of a social network and you should be able make a decision.
Micro- or macroblog
In general a macroblogger writes longer posts with longer intermittent periods while a microblogger writes short bursts on a daily basis. Microblog networks typically have a maximum post length of hundreds of characters. The macroblogger can choose between Diaspora*, Socialhome, Friendicaand Hubzilla. The microblogger can choose between Mastodon, Pleroma, Misskey or GNU Social.
Arguably the most important part of a social network is the interface. Lot’s of G+ users like the smooth interface with the grid layout, the stream with updates on people, collections and communities that you follow and the lack of ads. G+ has an algorithm but unlike FB my stream felt mostly relevant with interesting posts (ok, lets forget about discover which I never used because it mostly served me rubbish).
First, none of the social networks of the Fediverse show ads or have some kind of algorithm to influence the stream of posts. All macroblog social networks (see above) have a stream only with updates on people and topics (tags in Diaspora*) that you! follow. The interface of Mastodon is very different from G+ and has more similarities with Twitter. It allows you the follow users but not topics (although the user can search for tags). Nevertheless the interface of Mastodon works very well and might be an important reason that this social network is currently by far the most popular of the Fediverse.
If the grid-like layout of G+ is important to you, Socialhome features a similar grid-like layout.
ease of use
The different social networks in the Fediverse have a widely different user experience. Now it’s up for debate which is easy to use and which is not but I’ll give my opinion on this. The most easy to use social networks are in my opinion Mastodon and Diaspora* and I recommend them for beginners in the Fediverse. Both have a relatively simple interface with easy access to the functions and concentrate on social interaction. On the other end of the spectrum are Hubzilla and Friendica. Both these social networks are packed with functionality and Hubzilla is even more than a social network (e.g it allows the user to create a website). The interface for both can be difficult to master with lots of options, menus and submenus. It took me a considerable time to find all the functionality in Friendica and after half a year I still find new options.
If mobile is important it’s good to know that some social network are supported by multiple mobile apps while others (mostly the newer social network) current don’t have a mobile app. I believe that Mastodon is best supported with multiple mobile apps. Diaspora*, Friendica, Hubzilla, GNU Social and Pleroma have at least one mobile app. As far as I know Socialhome lacks a mobile app.
Support for Diaspora* protocol
If it’s important to connect with friends on Diaspora* it’s good to know that currently not all social networks in the Fediverse enable you to do that. Socialhome is based on the Diaspora* protocol while Friendica and Hubzilla support it. Friendica and Hubzilla are the only social networks that’s able to connect with (I believe) all social networks of the Fediverse.
If photo’s are very important to you (think Instagram) Pixelfed is designed with photo sharing in mind. The same can be said about PeerTube for video.
If your interested in sharing more than discussing or having a conversation you either need to choose for a social network with the largest number of users or a social network that can connect with all other networks. The best choice for that is either Mastodon or for the latter Friendica or perhaps Pleroma or Hubzilla.
If you want to discover what’s going on in the Fediverse you’ll either want to choose Mastodon because of its size or a network that connects with most other social networks. I believe that in the latter case Friendica is the best choice but if you’re less interested in the Diaspora* side of things you can also choose Hubzilla or Pleroma.
G+ was the shared interest network and that gap is hard to fill. Nevertheless there are options. Mastodon has servers that are for people interested in specific topics like art (mastodon.art), open source (Fosstodon), Linux (linuxrocks.online), technology (mastodon.technology)) or science (scholar.social). Diaspora* takes a different approach where contacts can be ordered in aspects. By default the aspects are Family, Friends, Acquaintances and Work (social circles) but special interests aspects such as Science op OpenSource can very well be added. The groups in Friendica have a similar working.
Social networks such as Mastodon, Diaspora, Friendica and Hubzilla can be used for private messages but keep in mind that if you’re on Diaspora you can’t send a private message to someone on Mastodon vice versa.
Connect with G+ friends
G+ users went everywhere but the’re some likely places where you can
meet old G+ friends. The most prominent is likely the Diaspora* instance
(=server) Pluspora. As the name indicates Pluspora is
especially created for G+ refugees so there’s a good chance you’ll find
friends over there. It may be good to point out that Pluspora is part of
the Diaspora* network. I’ve also seen some of my old G+ friends
surfacing on either Mastodon or on Diaspora*.
There is no denying that G+ filled a gap in the market of social media networks. G+ was a shared interest network where the user could follow multiple persons on collections or I could join a community around a specific interest. This gap isn’t easy to fill by any social media network. Now my last tip is this. Take your time to look around in your new network, don’t expect it to be like G+ but keep an open mind and judge it on its own merits. After some time you’ll discover that this new social network has its own qualities that you start to care about and love.
EDIT 25 February 2019: I removed the Osada social network because the developers decided to abandon it. Instead they are concentrating their efforts on the Zap social network which is similar to Osada with one huge difference that Zap doesn’t support the ActivityPub protocol.
This post contains some use cases where Friendica could be a better choice than Diaspora*
Lately I’ve came across discussions and questions about the difference between Diaspora* and Friendica. So, after an earlier reply today describing when it’s worthwile to use Friendica instead of Diaspora, I decided to expand on that post. On the surface both social networks look similar, they’re allow for blogging with a markup language to structure text, the interface shows similarities and they share most of the functionality. Although they were both released in 2010 Diaspora is much better known and has more users. So why use Friendica at all?
I therefore defined some typical use cases where Friendica could be beneficial:
Being able to connect and communicate with contacts from various social networks of the Fediverse. Friendica supports different social networking protocols and federates with Mastodon, Diaspora* and Pleroma and others.
Being able to automatically post from Friendica to several social networks (even non-federated and even to your WordPress blog) e.g. important for people that cast on multiple social networks at once. This service alone is one that some people are willing to pay for.
Being able to follow and discuss certain hashtags over multiple social networks. See 1). Important if you don’t want to miss anything 😉
To setup a forum for a certain purpose for multiple people to join.
A link to a website doesn’t show a preview on my current Friendica server squeet.me. This is for some people a very important feature that’s missing.
The upload limit for a photo can be lower depending on the server. On the popular server squeet.me it is 781.25Kb this is way lower than the 4.2 Mb of Diaspora*. I guess the message is to carefully choose a server for your account.
All additional features of Friendica come at a price, complexity of the UI. This is I think the reason that Friendica is harder to master than Diaspora. Diaspora fulfils the needs of most people and the simplicity of the interface is in fact one of the strong suits of this social network. Friendica on the other hand is more for power users or people that absolutely need one of the use cases mentioned above.
Full disclosure I used both Friendica and Diaspora* and currently I don’t prefer one over the other.
EDIT 01-02-2020: Unfortunately the Diaspora* pod that I was on has seized to exist and I didn’t create an account on another pod since there is to much overlap with Friendica for me.
To kick off the year I started to learn Bash scripting, something I wanted to do a very long time. I humbly began with tutorials on the web like this one and I’m rewriting scripts from Smokey01, a fanatic Puppy Linux user. As an exercise I simply rewrote this script to work on OSX. If you want to use it you need to install exiftool. I installed exiftool with Homebrew and typed brew install exiftool but there’s also a dmg file available. If you don’t use Homebrew you do have to change the check if exiftool is installed.
Now for the script. It reads a jpeg file that must contain geocoordinates. After some checks for parameter and exiftool installed it reads the geocoordinates and stores them in the variable coord. This variable is then added to a Google search query and the result displayed in the browser.
Save the script e.g. with the name place and run with place /path/to/photo.jpg to display the location where photo.jpg was taken.
2 # Originally written by smokey01 28 May 2017
3 # Rewritten for OSX by Eric Buijs 9 Jan 2019
4 if [ $# -eq 0 ]
6 echo You need to specify a file.
7 echo EG: place photo.jpg
8 exit 1
11 if [ ! -d /usr/local/Cellar/exiftool ]
13 echo “This script requires exiftool!”
14 exit 1
17 coords=`exiftool -n -p ‘$GPSLatitude,$GPSLongitude’ $@`
18 read -e -p “Do you want to see the location in your Browser? ” choice
19 [[ “$choice” == [Yy]* ]] && open https://www.google.com/search?q=$coords || exit 1
With G+ closing in a couple of months community owners are searching for alternatives. I provide a number of FLOSS options.
With the demise of G+ a lot of community owners are suddenly looking for a new home. Since a lot of G+ users despise FaceBook (and rightfully so) other social networks are mentioned. The problem with a lot of these networks is that they are centralized and proprietary making the users depending on the whims of the owner of the network. Below I summerize the FLOSS options for people interested in setting up a community. This is not an exhaustive list. I encountered these options after discussions often on G+ and I experimented with some of these options during the last couple of months.
Self-hosted or not
An important decisions is whether or not to host the forum or community yourself. If you want to host it yourself you’ll keep full control of the server however the maintenance is considerably more labor-intensive than with a non-selfhosted solution. You also need to install the software on a server and configure it.
Both are macroblogging social media networks that offer the possibility to create a forum. The UI of Friendica doesn’t look very modern but the functionality needed to use and maintain a forum is all there. Click this link to see an example of what a Friendica forum looks like. If you want to create a forum on a existing server please note that the administrator of this server can place limits to the forum e.g the number of participant or the number of forums that can be created by one account. Be aware that you’re a guest on someone else’s server.
A practical example. In the German town of Zwenkau the citizens are provided with a community platform, the Zwenkauer Flaschenpost, for online communication and discussion between citizens. This is all done with a standard Friendica install on a server. If you want to read more here is a link.
Movim is social platform that let you share and chat. Movim is build on top of the XMPP communication protocol. A strength of Movim is that is federates and that everyone with a XMPP account (e.g Jabber) can connect. Once you’ve created an account it’s very easy to create a community. The UI looks modern but some community admin features are missing (or I couldn’t find them). As an example as an owner I couldn’t ban someone from the community. On the other hand I found Movim community the easiest to set up (in a non-selfhosted environment). This is a link to my Movim community. Also a word of warning if you create a forum on an existing server be aware that you’re a guest of that server and that restriction may be applicable.
Mastodon is a microblog social network that has a TweetDeck like interface. I was hesitant to add it to this list because the UI and the dynamic experience differ from a classical forum where the same post remains in the viewport for days or weeks. However when joining the right instance (=server) or create one yourself it may very well become a great dedicated community. Here is a link to mastodon.art an instance where artists can show their artwork.
Open source forum software that is currently in beta. Nice, modern UI. I’ve read some concerns about the beta status and the stability of Flarum. If you want to see what the interface looks like here is a link. Here is a link to a guide how to install Flarum.
Open source forum software with a modern UI. You can either self host for free or use a NodeBB hosting plan that comes with a price tag. Here is a link to the source of NodeBB. You can check the interface yourself on this website.
Forum software based on the PHP programming language. I know phpBB mainly because it’s used on the FreeCAD forum, a place that I visit sometimes. phpBB is feature rich and from a user perspective it’s a joy to use. The documentation about this forum software can be found here. Here is a link to the source code.
Friendica is a good alternative to the Diaspora* social network. One of the features that makes Friendica shine are various filtering options. This article describes them.
Diaspora* vs Friendica
About two months ago I created a Friendica account to make a comparison with Diaspora*. I wanted to know if Friendica is a good alternative to Diaspora*. A problem that I have with Diaspora*, at least on my pod, is the lack of control of the stream. The stream contains all the posts from the hashtags and people that I follow. Although this is an excellent way to create a stream it also results in much unwanted posts. An example, if I follow someone on Diaspora* I get every post. If for instance I find another person interesting for his/her ideas about the Fediverse I also get all the kitty pictures. In this case I often end up ignoring the person entirely which is a pity.
Filtering in Friendica
Friendica provides much better control over the posts in /network (this is the equivalent of the Diaspora* stream). This is achieved with several filter options. Under /settings/addon these filtering options can be found. Here is a summary:
Collapse (=partially hide) posts from specified users with Blockem
Allow only specified languages. Other languages are collapsed (Language Filter)
Collapse posts with specified hashtags e.g nsfw (Content Filter)
Block specified users (Superblock)
Advanced Content Filter, a very versatile filter that allows to collapse posts on about every property found in a post, such as body text, title, author boolean combinations of properties. This is done in so called rules. The Advanced Content Filter uses Symfony’s Expression Language. The following link provides some examples https://github.com/friendica/friendica/wiki/Advanced-Content-Filter-addon. Advanced Content Filter enables the user for instance to collapse every post that has an image (and saves me a lot of scrolling) or has certain text in the body. A simple example, the rule body matches "/politics/" collapses every post that contains the word ‘politics’.
Furthermore Friendica displays at the top of a post when a filter is used. This way it’s easy to determine if the filtering works as intended.
All in all the filtering options of Friendica are a good way to control the posts in the stream improving the experience of the social network. The image filter and the language filter alone strongly reduce the amount of mouse scrolling for me.
Hallo allemaal, ik geef sinds kort bijles in wiskunde, natuurkunde en scheikunde voor Havo en VWO. Als je zoon, dochter of misschien jijzelf bijles in deze vakken kan gebruiken en je komt uit Utrecht ga dan naar www.bijles-in-utrecht.nl. Daar staat meer informatie over de bijles en hoe je deze kunt aanvragen.
How do you rip a DVD even the one with DRM. What do you need to decrypt DVD’s, create mpeg4, add metadata and play it on Kodi, OpenELEC or LibreElec. This post describes the free/libre software that does the job.
Why in this day and age of Netflix one would be interested in how to rip a DVD? More and more people are using Netflix or an other video streaming service to watch movies and TV series. What most people don’t know is that Netflix is trampling user rights. Not only does Netflix use digital rights management (DRM) they also mine huge amounts of data from the users. This data is not only used to improve the service it can also be provided to third parties like law enforcement and other businesses for promotional ‘services’ . If you don’t believe me you can read it in the privacy statement of Netflix.
Unfortunately the’re very little legal alternatives that respect the user rights. DVD’s are an option but most of current DVD’s have strong DRM in place. Luckily this DRM can be removed with relatively simple means. Without the DRM the user can watch the content the way he/she prefers.
In this post I’ll explain what you need to remove the DRM from DVD’s and copy the movie or TV series to OpenELEC or LibreELEC or any other system with Kodi e.g in your living room.
I was struggling to burn the subtitles into the media file that I created from a DVD. This is what eventually worked for me. When a DVD is opened and scanned, go to the subtitles tab, choose the preferred language and uncheck the Forced Only box while leaving the burned in box checked. That’s it. Now press the Start button to start encoding and your file should contain the burned-in subtitles with the language that you choose.
MetaZ or MetaX
MetaZ is a metadata editor but the beauty is that it uses the title of the movie or the TV series to retrieve metadata from The Movie Database (TMDb) and adds this metadata to the rip file we just made with HandBrake. Unfortunately MetaZ only runs on OSX while MetaX only runs on Windows. Of course we can use VLC for GNU/Linux but the user has to add the metadata manually which is a pain in the butt.
Kodi, OpenELEC, LibreELEC
Eventually you want to be able to play the video files that you ripped from the DVD’s. There are many free/libre software choices but perhaps the most popular is Kodi. Kodi is mediaplayer software that runs on about every media file you’ll throw at it. It is available for GNU/Linux, Windows and OSX. OpenELEC and LibreELEC take this a step further because they’re Linux based operating systems with the sole purpose to run Kodi.
I hope this information has helped you to rip your DVD’s and start watching them on the device of your own liking. If you have any questions about this topic feel free to send me an email. Now if you excuse me I have a nice classic movie to watch.