All posts by শেখ তুহিন

Decentralised social media for everyone

I stopped using Facebook. There are many reasons for that, using tax hole to avoid taxes, privacy concerns and others. But I have to admit Facebook was really easy to keep in touch with my friends. All my friends are in there and once you are not on facebook, you stop hearing from them.

I was since exploring open source alternatives to replace Facebook. But there isn’t any good alternatives yet and all of them requires a complex setup (this is if you want to host it to keep all data to yourself, there are open source social networks hosted by others and they are quite easy to join). I believe if we want to get rid of all those big companies profiting from selling our data, we need a simple setup that can handled by anyone. So I was thinking of something that has following features.

First, it would be easy to setup. Ideally people can just start it on their laptop or desktop (and if possible on mobile phone). They can probably run a binary or executable and it will start the instance.

Second, everyone will have their own instances. so when I add a friend, it will actually add a link to other instance from my one and whenever the other instance posts something (for me or to everyone) it will then grab it and queue it in my message/notification list.

third, we need a way to deliver the messages when the receiver is turned off. I think this is a big challange as if I’m sending a message to my friend and my friend’s instance is turned off, then the message needs to be somewhere that will try sending that message again (like mailservers).

Each of these issues have challenges that needs resolving. For the first issue, we need a system similar to DNS system that can search and find those instances. Second issue is already handled by systems like matrix and similar implementations. Third issue needs more thinking as we need the messages to be stored somewhere when the sender or receiver goes offline. P2P could be a possibility, or we can check how Dovecot future implementation (https://www.theregister.co.uk/2017/10/12/openxchange_imap_chat_killer_app/) might work with this.

Unijoy Layout in Ubuntu Gnome 17

Using unijoy on Ubuntu 17.04 is similar to what it was before. First thing is Ibus and m17n engine needs to be installed on your system before this could be done.

Update (15th November 2017)
Ubuntu 17.10 has been released and there are few changes. Dconf editor is not installed by default. so you may have to install it using

sudo apt install dconf-editor

Also after completing this whole process, you have to restart ibus and that can be done like this

ibus restart

Step 1: Install Ibus

Press ctrl+alt+t or run the terminal. then type in the following command as root user:

sudo apt-get install ibus ibus-m17n m17n-db m17n-contrib ibus-gtk

If you only want unijoy, then you don’t need to add m17n-contrib in your command. this will install ibus on your system with m17n engine (this engine has Bangla/Bengali and other East Asian Language writing system). You can also use Ubuntu’s software centre to install Ibus.

Step 2: Find out if unijoy layout is on your system

Now type the following in your terminal.

dpkg -L m17n-db | grep bn

Install iBus

This will list all the Bangla/Bengali keyboard layout installed on your system.

If you want to use it for other keyboard layouts like Probhat or Inscript then you can check whether they are installed on your sytem by typing the following command:

dpkg -L m17n-contrib | grep bn

Check if unijoy layout is installed

Step 3: Set your keyboard layout in dconf editor

Type dconf-editor in your terminal and the editor will run. Now you can make changes in there.

Check if other keyboard layouts were installed

You have to change following settings to get Unijoy layout added as your keyboard layout.
org.gnome.desktop.input-sources and update the value of sources from there.

In order to do it, click to expand org, then find and click on gnome from there. After that expand desktop and then click on input-sources.

Run dconf editor

Now you can see some settings on the right hand side section of the editor. If you find sources is empty (showing [] only), or only showing something like this [(‘xkb’, ‘gb’)], then you need to click on that and add the following:
(‘ibus’, ‘m17n:bn:unijoy’). For other keyboard settings, change bn:unijoy with something else. For example, if you want inscript layout, changed the second settings to something like this (‘ibus’, ‘m17n:bn:probhat’).

Update input-source settings

That’s it. Now you’ll be able to see unijoy layout, or other layout along with the default keyboard layout. [Update: You need to restart ibus in order to start using the unijoy layout. To restart ‘ibus’ type ibus restart in terminal and press enter.]. Please note that, before ubuntu 15, the default keyboard shortcut for changing input method was ctrl+space, but in ubuntu 15, the shortcut is super+space.

Region & Language Settings

If you want to change keyboard shortcut to switch between keyboard layouts, then go to Settings>Region & Language Settings and then goto input sources tab and on the right hand side, you’ll see shortcut settings. You can choose which keys to press to switch between keyboard layouts.

Install Bangla Fonts

If you find the fonts are missing, you can install them like this:

sudo apt install fonts-lohit-beng-bengali fonts-lohit-beng-assamese fonts-beng-extra fonts-beng

This will install the following fonts:

  • Ani
  • Jamrul
  • Likhan
  • Lohit Assamese
  • Lohit Bengali
  • Mitra Mono
  • Mukti Narrow

Assamese language has the same alphabets like Bangla, but if you however don’t want to use Assamese fonts, then just skip that package name (fonts-lohit-beng-assamese).

Bangladesh and Climate Change

Climate change will affect Bangladesh a lot because, a) it is in tropical zone (actually southern half is in tropical zone), b) most of its population is poor, c) corrupt government that would do nothing towards the benefit of the country and its people, d) high population.

So I am planning to compile some online resources that might help people prepare for the climate change in Bangladesh. There are few things that needs to be considered, a) find changes/modification needed for habitats, b) crop production changes, c) changes in lifestyle to prepare for the climate change.

Unijoy Layout in Ubuntu Gnome Remix [Updated: works on Ubuntu 14, 15 and 16]

[Updated on 31 May 2016]

Updating my ubuntu to 13.10 just removed my input method settings and as a result I was unable to write in Bangla (Bengali) using unijoy layout anymore. I spent quite a long time trying to find a fix for it and writing it down here so that I can remember the steps if needed again.

First thing is Ibus and m17n engine needs to be installed on your system before this could be done. There is a good tutorial on how to do that in Joydeep Bakshi’s website (update: as of Aug 14, 2014, it seems this website is down). However we do not need all the steps mentioned in there, so I’ll write down what to do step by step.

Step 1: Install Ibus

Press ctrl+alt+t or run the terminal. then type in the following command as root user:

sudo apt-get install ibus ibus-m17n m17n-db m17n-contrib ibus-gtk

If you only want unijoy, then you don’t need to add m17n-contrib in your command. this will install ibus on your system with m17n engine (this engine has Bangla/Bengali and other East Asian Language writing system). You can also use Ubuntu’s software centre to install Ibus.

Step 2: Find out if unijoy layout is on your system

Now type the following in your terminal.

dpkg -L m17n-db | grep bn

Install iBus

This will list all the Bangla/Bengali keyboard layout installed on your system.

If you want to use it for other keyboard layouts like Probhat or Inscript then you can check whether they are installed on your sytem by typing the following command:

dpkg -L m17n-contrib | grep bn

Check if unijoy layout is installed

Step 3: Set your keyboard layout in dconf editor

Type dconf-editor in your terminal and the editor will run. Now you can make changes in there.

Check if other keyboard layouts were installed

You have to change following settings to get Unijoy layout added as your keyboard layout.
org.gnome.desktop.input-sources and update the value of sources from there.

In order to do it, click to expand org, then find and click on gnome from there. After that expand desktop and then click on input-sources.

Run dconf editor

Now you can see some settings on the right hand side section of the editor. If you find sources is empty (showing [] only), or only showing something like this [(‘xkb’, ‘gb’)], then you need to click on that and add the following:
(‘ibus’, ‘m17n:bn:unijoy’). For other keyboard settings, change bn:unijoy with something else. For example, if you want inscript layout, changed the second settings to something like this (‘ibus’, ‘m17n:bn:probhat’).

Update input-source settings

That’s it. Now you’ll be able to see unijoy layout, or other layout along with the default keyboard layout. [Update: You need to restart ibus in order to start using the unijoy layout. To restart ‘ibus’ type ibus restart in terminal and press enter.]. Please note that, before ubuntu 15, the default keyboard shortcut for changing input method was ctrl+space, but in ubuntu 15, the shortcut is super+space.

Region & Language Settings

If you want to change keyboard shortcut to switch between keyboard layouts, then go to Settings>Region & Language Settings and then goto input sources tab and on the right hand side, you’ll see shortcut settings. You can choose which keys to press to switch between keyboard layouts.

Updates on May 2016

Upgrading Ubuntu to 16 did a very strange thing, all my installed Bangla fonts went missing. That was quickly fixed by applying the following command:

sudo apt install fonts-lohit-beng-bengali fonts-lohit-beng-assamese fonts-beng-extra fonts-beng

This will install the following fonts:

  • Ani
  • Jamrul
  • Likhan
  • Lohit Assamese
  • Lohit Bengali
  • Mitra Mono
  • Mukti Narrow

Assamese language has the same alphabets like Bangla, but if you however don’t want to use Assamese fonts, then just skip that package name (fonts-lohit-beng-assamese).