As i started configuring emacs from scratch, I have chosen to use the default package manager (use-package)
When i tried to refresh & upgrade packages, I noticed that it blocks the emacs UI until the operation is finished.
I wanted to move this work to the background without blocking the UI. When browsing melpa,
I found a package named async which provides a couple of functions
to do write async code.
1
2
3
4
5
6
7
8
(defunasync-upgrade-packages ()
"Update packages to latest version without blocking Emacs." (interactive)
(message"Upgrading packages in the background 🚀")
(async-start (lambda ()
(package-refresh-contents)
(package-upgrade-all))
(lambda (result)(messageresult))))
The above code snippet does a decent job, But i have to learn how to handle errors
in async way, As the (package-refresh-contents) throws an error if failed to fetch packages.
Thanks to the user (save-lisp-and-die) in the xmpp lisp room, who helped me with understanding the async package.
This is a simple Pomodoro timer which i wrote some time ago in elisp while using doom emacs!
The code is based on systemcrafters pomodoro example. I have customized it a bit more to support pause & resume! 😁
1
2
3
4
5
6
7
8
9
10
11
12
;; Based on https://systemcrafters.cc/emacs-shorts/pomodoro-timer/(defunmy/pomodoro-timer ()
"A simple pomodoro timer set for 30 min. If timer is running, Calling this function will pause/resume it" (interactive)
;; pause / resume if timer is running (if (not (equal (org-timer-value-string) "0:00:01 "))
(org-timer-pause-or-continue)
;; supported sound formats: https://www.gnu.org/software/emacs/manual/html_node/elisp/Sound-Output.html (setq!org-clock-sound (concatdoom-private-dir"attention.wav"))
(org-timer-set-timer30) ;; 30 minutes )
)
Let's say all we want to do when our laptop boots up is to input the password for unlocking the disk and be straight away taken to your wayland or X11 desktop. Well then, let's go!
Start X or wayland on tty login
We are not going to be using a display manager like gdm3 or lightdm. So, when a user logs in into tty1, normally one would run sway or startx shortly after.
We can the use the shell the automate this for tty1 alone.
# automatically login into sway if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then exec sway # exec startx fi
Put this snippet at the very end of your $HOME/.zprofile or $HOME/.bash_profile. Now when you log out and log back in, you should be presented with your desktop.
Autologin into your system
Run sudo systemctl edit getty@tty1 and then add the following snippet between the indicated comment lines in the file.
In my case, there was a line that said Anything between here and the comment below will become the new contents of the file. Paste the snippet there.
[Service] ExecStart= ExecStart=-/sbin/agetty --autologin joe --noclear %I 38400 linux
Remember to replace joe with the username that you'd want to use for autologin.
GRUB timeout
This step is optional. If you dont want to see the GRUB boot screen everytime your computer boots up, open up /etc/default/grub as root and then change the value of GRUB_TIMEOUT to something less than 5. I have it set to 1.
... GRUB_TIMEOUT=1 ...
Then proceed to apply the change with
sudo update-grub
Reboot and enjoy!. If you've put 0 for the timeout, pressing the Shift key(for BIOS) or Esc key(for UEFI) when the system boots will bring up the GRUB menu.
I have recently came across this amazing website https://clig.dev/ which contains very
useful guidelines for developers who wish to create a new CLI tool.
Not just that, They also curated a list of the popular CLI libraries for
many programming languages.
I found this website very resourceful to code my first CLI tool go-ifsc
which is built in Golang.
Software Freedom Law Center, India, also known as sflc.in, organized an event to celebrate the Software Freedom Day on 30th September 2023. Me, Sahil, Contrapunctus and Suresh joined. The venue was at the SFLC India office in Delhi. The sflc.in office was on the second floor of what looked like someone’s apartment:). I also met Chirag, Orendra, Surbhi and others.
My plan was to have a stall on LibreOffice and Prav app to raise awareness about these projects. I didn’t have QR code for downloading prav app printed already, so I asked the people at sflc.in if they can get it printed for me. They were very kind and helped me in getting a color printout for me. So, I got a stall in their main room. Surbhi was having an Inkscape stall next to mine and gave me company. People came and asked about the prav project and then I realized I was still too tired to explain the idea behind the prav project and about LibreOffice (after a long Kerala trip). We got a few prav app installs during the event, which is cool.
Sahil had Debian stall and contrapunctus had OpenStreetMap stall. After about an hour, Revolution OS was screened for all of us to watch, along with popcorn. The documentary gave an overview of history of Free Software Movement. The office had a kitchen where fresh chai was being made and served to us. The organizers ordered a lot of good snacks for us.
I came out of the movie hall to take more tea and snacks from the front desk. I saw a beautiful painting was hanging at the wall opposite to the front desk and Tejaswini (from sflc.in) revealed that she had made it. The tea was really good as it was freshly made in the kitchen.
After the movie, we played a game of pictionary. We were divided into two teams. The game goes as follows: A person from a team is selected and given a term related to freedom respecting software written on a piece of paper, but concealed from other participants. Then that person draws something on the board (no logo, no alphabets) without speaking. If the team from which the person belongs correctly guesses the term, the team gets one step ahead on the leader board. The team who reaches the finish line wins.
I recall some fun pictionaries. Like, the one in the picture below seems far from the word “Wireguard” and even then someone from the team guessed that word. Our team won in the end \o/.
Then, we posed for a group picture. At the end, SFLC.in had a delicious cake in store for us. They had some merchandise - handbags, T-shirts, etc. which we could take if we donate some amount to SFLC.in. I “bought” a handbag with “Ban Plastic, not Internet” written on it in exchange for donation. I hope that gives people around me a powerful message :) .
For years, I’ve been the self-appointed guardian of my family’s digital treasures, diligently backing up everything on trusty 128 GB SanDisk USBs. You name it, from family photos to important documents, it was all meticulously stored on those little drives. But here’s the kicker: I wanted a cloud solution, something that could offer the same level of security and accessibility without breaking the bank.
I scoured the internet for options, but to be honest, most cloud services were way out of my budget range. Sure, they boasted top-notch security, but they lacked the flexibility and affordability I needed. I mean, come on, a budget-conscious student like me couldn’t justify shelling out big bucks for a rigid, overpriced cloud service that didn’t quite fit the bill.
It was like finding a hidden gem in a sea of overpriced clouds.
So basically, Rsync.net is a cloud storage service that stands out for its emphasis on privacy, data security, and flexibility. Essentially, it provides users with an empty UNIX filesystem accessible through various SSH tools, built on the reliable ZFS file system known for it’s fault tolerance. This platform allows users to execute a range of backup operations, including rsync, sftp, scp, borg, rclone, restic, and git-annex, making it a versatile and comprehensive solution for a wide array of backup needs.
Oh, and get this: I told them I was a broke student, and they totally hooked me up! They offered me a sweet educational discount rate of just 0.6 cents per GB, per month. Sure, I had to pay annually, but with a 250 GB minimum, it’s only 18 bucks a year. Talk about a steal! As a student, every penny counts, and this was simply awesome.
And they have a really quick support team. Most queries get resolved within minutes or max 24 hrs. When I was struggling with sluggish upload and download speeds, these legends didn’t waste a second. They set me up with test accounts all over the globe to figure out which spot had the smoothest routes to my place.
I have recently read a blog post describing some choices debian made to provide an high quality operating system, both technical & ideological aspects. I enjoyed reading it.
Personally, I like the debian social contract which prioritizes openness & users, which a lot of linux operating systems lack. We saw the consequences users/companies/projects have to face, because of the way how redhat flipped their policies regarding disclosing the source code of packages.
I have some thoughts on debian’s package policy though. Below are some sentences i am quoting from the blog post:
If Debian weren’t self-contained, it would be at the mercy of any of the tens of thousands of packages it has, and all their dependencies, being available when an urgent security fix needs to be released. This is not acceptable to Debian, and so Debian chooses to do the work of packaging all dependencies.
Technially, This is a very good choice & reflects the project’s upmost concern on security & stability.
That means, of course, that for Debian to package something can be a lot of work.
This is also true. Not just debian, But GNU/Guix, Another amazing operating system by the GNU project, has similar packaging policy.
I have packaged/updated a few debian packages in the past. It’s time taking, particularly with language ecosystems like node, ruby, Go. For example, packaging Gitlab requires a dedicated team of people, since it has hundreds of packages to maintain.
My thought is whether we can find a good balance between package security & reduction in packaging time by reducing the number of dependencies to package. I am no expert in this aspect. But, There are many experts in the debian community who could have a good idea.
A trip full of hitchhiking, beautiful places and welcoming locals.
Day 1: Arrival in Kochi
Kochi is a city in the state of Kerala, India. This year’s DebConf was to be held in Kochi from 3rd September to 17th of September, which I was planning to attend. My friend Suresh, who was planning to join, told me that 29th August 2023 will be Onam, a major festival of the state of Kerala. So, we planned a Kerala trip before the DebConf. We booked early morning flights for Kochi from Delhi and reached Kochi on 28th August.
We had booked a hostel named Zostel in Ernakulam. During check-in, they asked me to fill a form which required signing in using a Google account. I told them I don’t have a Google account and I don’t want to create one either. The people at the front desk seemed receptive, so I went ahead with telling them the problems of such a sign-in being mandatory for check-in. Anyways, they only took a photo of my passport and let me check-in without a Google account.
We stayed in a ten room dormitory, which allowed travellers of any gender. The dormitory room was air-conditioned, spacious, clean and beds were also comfortable. There were two bathrooms in the dormitory and they were clean. Plus, there was a separate dormitory room in the hostel exclusive for females. I noticed that that Zostel was not added in the OpenStreetMap and so, I added it :) . The hostel had a small canteen for tea and snacks, a common sitting area outside the dormitories, which had beds too. There was a separate silent room, suitable for people who want to work.
We had lunch at a nearby restaurant and it was hard to find anything vegetarian for me. I bought some freshly made banana chips from the street and they were tasty. As far as I remember, I had a big glass of pineapple juice for lunch. Then I went to the Broadway market and bought some cardamom and cinnamon for home. I also went to a nearby supermarket and bought Matta brown rice for home. Then, I looked for a courier shop to send the things home but all of them were closed due to Onam festival. After returning to the Zostel, I overslept till 9 PM and in the meanwhile, Suresh planned with Saidut and Shwetank (who met us during our stay in Zostel) to go to a place in Fort Kochi for dinner. I suspected I will be disappointed by lack of vegetarian options as they were planning to have fish. I already had a restaurant in mind - Brindhavan restaurant (suggested by Anupa), which was a pure vegetarian restaurant.
To reach there, I got off at Palarivattom metro station and started looking for an auto-rickshaw to get to the restaurant. I didn’t get any for more than 5 minutes. Since that restaurant was not added to the OpenStreetMap, I didn’t even know how far that was and which direction to go to. Then, I saw a Zomato delivery person on a motorcycle and asked him where the restaurant was. It was already 10 PM and the restaurant closes at 10:30. So, I asked him whether he can drop me off. He agreed and dropped me off at that restaurant. It was 4-5 km from that metro station. I tipped him and expressed my gratefulness for the help. He refused to take the tip, but I insisted and he accepted.
I entered the restaurant and it was coming to a close, so many items were not available. I ordered some Kadhai Paneer (only item left) with naan. It tasted fine. Since the next day was Thiruvonam, I asked the restaurant about the Sadya thali menu and prices for the next day. I planned to eat Sadya thali at that restaurant, but my plans got changed later.
Day 2: Onam celebrations
Next day, on 29th of August 2023, we had plan to leave for Wayanad. Wayanad is a hill station in Kerala and a famous tourist spot. Praveen suggested to visit Munnar as it is far closer to Kochi than Wayanad (80 km vs 250 km). But I had already visited Munnar in my previous trips, so we chose Wayanad. We had a train late night from Ernakulam Junction (at 23:30 hours) to Kozhikode, which is the nearest railway station from Wayanad. So, we checked out in the morning as we had plans to roam around in Kochi before taking the train.
Zostel was celebrating Onam on that day. To opt-in, we had to pay 400 rupees, which included a Sadya Thali and a mundu. Me and Suresh paid the amount and opted in for the celebrations. Sadya thali had Rice, Sambhar, Rasam, Avial, Banana Chips, Pineapple Pachadi, Pappadam, many types of pickels and chutneys, Pal Ada Payasam and Coconut jaggery Pasam. And, there was water too :). Those payasams were really great and I had one more round of them. Later, I had a lot of variety of payasams during the DebConf.
So, we hung out in the common room and put our luggage there. We played UNO and had conversations with other travellers in the hostel. I had a fun time there and I still think it is one of the best hostel experiences I had. We made good friends with Saiduth (Telangana) and Shwetank (Uttarakhand). They were already aware about the software like debian, and we had some detailed conversations about the Free Software movement. I remember explaining the difference between the terms “Open Source” and “Free Software”. I also told them about the Streetcomplete app, a beginner friendly app to edit OpenStreetMap. We had dinner at a place nearby (named Palaraam), but again, the vegetarian options were very limited! After dinner, we came back to the Zostel and me and Suresh left for Ernakulam Junction to catch our train Maveli Express (16604).
Day 3: Going to Wayanad
Maveli Express was scheduled to reach Kozhikode at 03:25 (morning). I had set alarms from 03:00 to 03:30, with the gap of 10 minutes. Every time I woke up, I turned off the alarm. Then I woke up and saw train reaching the Kozhikode station and woke up Suresh for deboarding. But then I noticed that the train is actually leaving the station, not arriving! This means we missed our stop. Now we looked at the next stops and whether we can deboard there. I was very sleepy and wanted to take a retiring room at some station before continuing our journey to Wayanad. The next stop was Quilandi and we checked online that it didn’t have a retiring room. So, we skipped this stop. We got off at the next stop named Vadakara and found out no retiring room was available. So, we asked about information regarding bus for Wayanad and they said that there is a bus to Wayanad around 07:00 hours from bus station which was a few kilometres from the railway station.
We took a bus for Kalpetta (in Wayanad) at around 07:00. The destination of the buses were written in Malayalam, which we could not read. Once again, the locals helped us to get on to the bus to Kalpetta. Vadakara is not a big city and it can be hard to find people who know good Hindi or English, unlike Kochi. Despite language issues, I had no problem there in navigation, thanks to locals. I mostly spent time sleeping during the bus journey.
A few hours later, the bus dropped us at Kalpetta. We had a booking at a hostel in Rippon village. It was 16 km from Kalpetta. On the way, we were treated with beautiful views of nature, which was present everywhere in Wayanad. The place was covered with tea gardens and our eyes were treated with beautiful scenery at every corner.
Rippon village was a very quiet place and I liked the calm atmosphere. This place is blessed by nature and has stunning scenery. I found English was more common than Hindi in Wayanad. Locals were very nice and helped me, even if they didn’t know my language.
After catching some sleep at the hostel, I went out in the afternoon. I hitchhiked to reach the main road from the hostel. I bought more spices from a nearby shop and realized that I should have waited for my visit to Wayanad to buy cardamom, which I already bought from Kochi. Then, I was looking for post office to send spices home. The people at the spices shop told me that the nearby Rippon post office was closed by that time, but the post office at Meppadi was open, which was 5 km from there.
I went to Meppadi and saw the post office closes at 15:00, but I reached five minutes late. My packing was not very good and they asked me to pack it tighter. There was a shop near the post office and the people there gave me a cardboard and tapes, and helped pack my stuff for the post. By the time I went to the post office again, it was 15:30. But they accepted my parcel for post.
Day 4: Kanthanpara Falls, Zostel Wayanad and Karapuzha Dam
Kanthanpara waterfalls were 2 km from the hostel. I hitchhiked to the place from the hostel on a scooty. Entry ticket was worth Rs 40. There were good views inside and nothing much to see except the waterfalls.
We had a booking at Zostel Wayanad for this day and so we shifted there. Again, as with their Ernakulam branch, they asked me to fill a form which required signing in using Google, but when I said I don’t have a Google account they checked me in without that. There were tea gardens inside the Zostel boundaries and the property was beautiful.
Later in the evening, I went to Karapuzha Dam. I witnessed a beautiful sunset during the journey. Karapuzha dam had many activites, like ziplining, and was nice to roam around.
Chembra Peak is near to the Zostel Wayanad. So, I was planning to trek to the heart shaped lake. It was suggested by Praveen and looking online, this trek seemed worth doing. There was an issue however. The charges for trek were Rs 1770 for upto five people. So, if I go alone I will have to spend Rs 1770 for the trek. If I go with another person, we split Rs 1770 into two, and so on. The optimal way to do it is to go in a group of five (you included :D). I asked front desk at Zostel if they can connect me with people going to Chembra peak the next day, and they told me about a group of four people planning to go to Chembra peak the next day. I got lucky! All four of them were from Kerala and worked in Qatar.
Day 5: Chembra peak trek
The date was 1st September 2023. I woke up early (05:30 in the morning) for the Chembra peak trek. I had bought hiking shoes especially for trekking, which turned out to be a very good idea. The ticket counter opens at 07:00. The group of four with which I planned to trek met me around 06:00 in the Zostel. We went to the ticket counter around 06:30. We had breakfast at shops selling Maggi noodles and bread omlette near the ticket counter.
It was a hot day and the trek was difficult for an inexperienced person like me. The scenery was green and beautiful throughout.
While returning from the trek, I found out a shop selling bamboo rice, which I bought and will make bamboo rice payasam out of it at home (I have some coconut milk from Kerala too ;)). We returned to Zostel in the afternoon. I had muscle pain after the trek and it has still not completely disappeared.
At night, we took a bus from Kalpetta to Kozhikode in order to return to Kochi.
Day 6: Return to Kochi
At midnight of 2nd of September, we reached Kozhikode bus stand. Then we roamed around for something to eat. I didn’t find anything vegetarian to eat. No surprises there! Then we went to Kozhikode railway station and looked for retiring rooms, but no luck there. We waited at the station and took the next train to Kochi at 03:30 and reached Ernakulam Junction at 07:30 (half hours before train’s scheduled time!). From there, we went to Zostel Fort Kochi and stayed one night there and checked out next morning.
Day 7: Roaming around in Fort Kochi
On 3rd of September, we roamed around in Fort Kochi. We visited the usual places - St Francis Church, Dutch Palace, Jew Town, Pardesi Synagogue. I also visited some homestays and the owners were very happy to show their place even when I made it clear that I was not looking for a stay. In the evening, we went to Kakkanad to attend DebConf.
Twenty-four is a big number. More than one/fourth (or more) of my life is behind me now. At this point, I truly feel like I have become an adult; mentally and physically. Another year seem to have gone by quickly. I still vividly remember writing 23 and Counting and here I’m writing the next one so soon.
Probably the lowest I felt ever on my birthday; with loss of Abraham and on the other hand, medical issues with a dear one. Didn’t even felt like birthday was almost here. The loss of Abraham, taught me to care for people more and meet cherish everyone. I’m grateful for all the people who supported and cared for me and others during times of grief when things went numb. Thank you!
Also, for the first time ever, I went to office on my birthday. This probably would become a norm in coming years. Didn’t felt like doing anything, so just went to office. The cake, wishes and calls kept coming in throughout the day. I’m grateful for the all people around for remembering :)
This year marked my first “official” job switch where I moved from MakeMyTrip to Unmukti as a GNU/Linux Network Systems engineer (that’s a mouthful of a job role, I know) where I do anything and everything ranging from system admin, network engineering, a bit of social media, chronicling stuff on company blog and bringing up new applications as per requirement. Moving from MMT to Unmukti was a big cultural shift. From a full-blown corporate with more than 3 thousand employees to a small 5-person team. People still think I work for a startup on hearing the low head count, though Unmukti is a 13 year old organization. I get the freedom to work at my own pace and put my ideas in larger technical discussions, while also actively participating in the community, which I’m truly grateful of. I go full geek here and almost everyone here is on the same spectrum, so things technical or societal discussions just naturally flow.
The months of August-September again marked the Great Refresh. For reasons unforeseen, I have had to pack my stuff again and move, albeit to just next door for now, but that gave me the much need opportunity to sift through my belongings here. As usual, I threw a boatload of stuff which was of no use and/or just hogging space. My wardrobe cupboard finally got cleaned and sorted, with old and new clothes getting (re)discovered. The Refresh is always a pain with loads of collating stuff in carry worthy bags and hauling stuff but as usual, there’s nothing else I can do other than just pack and move.
This year also culminated our four plus years of work for organizing annual Debian conference, DebConf to India. DebConf23 happened in Kochi, Kerala from 3rd September to 17th September (including DebCamp). First concrete work to bring conference to India was done Raju Dev who made the first bid during DebConf18 in Hsinchu, Taiwan. We lost but won during the next year bid at DebConf19 Curitiba, Brazil in 2019. I joined the efforts after meeting the team online after DebConf20. Initially started with the publicity team, but we didn’t need much publicity for event, I was later asked to join sponsors/fundraising team. That turned out to be quite an experience. Then the conference itself turned to be a good experience. More on that in an upcoming DebConf23 blog post, which will come eventually.
After seeing how things work out in Debian in 2020, I had the goal to become a Debian Developer (DD) before DebConf23, which gave me almost three years to get involved and get recognized to become a DD. I was more excited to grab sahil AT debian.org, a short email with only my name and no number of characters after it. After, quite a while, I dropped the hope of become a DD because I wasn’t successful in my attempts to meaningfully package and technically contribute to the project. But people in Debian India later convinced me that I have done enough to become a Debian Developer, non uploading, purely by showing up and helping around all for the Debian conferences. I applied and got sponsored (i.e. supported) for my request by srud and Praveen. Finally, on 23rd Feb, I officially became part of Debian project as 14th (at the moment) Debian Developer from India. Got sahil AT debian.org too :) For some grace, I also became a DD before DebConf23. Becoming a DD didn’t change anything much though, I still believe, it might have helped secure me a job though.
Also, worth mentioning is my increased interest in OpenStreetMap (OSM) mapping. I heavily mapped this year and went around for mapathon-meetups too. One step towards a better OSM and more community engagement around it.
Looking back at my blog, this year around, it seems mostly dotted with Debian and one OSM post. Significant shift from the range of topics I use to write about in the past year but blogging this year wasn’t a go-to activity. Other stuff kept me busy.
Living in Gurugram has shown me many facades of life from which I was shielded or didn’t come across earlier. It made me realize all the privileges which has helped me along the way, which became apparent while living “almost” alone here and managing thing by oneself.
On 13th September 2023, Abraham Raji from Kerala, an active member of FSCI, died in a water accident during a trip in the DebConf 2023.
Abraham was a passionate Free Software evangelist and an active member of various Free Software related communities. The revamped website theme of FSCI is his labour of love.
He was also a Debian Developer and led the design team of DebConf23 and helped in organizing several other local events in recent years. The DebConf23 website, t-shirt, badge were all designed by him.
Following projects paid their respects to Abraham Raji by dedicating their latest releases to him:
I had worked with Abraham when we were migrating FSCI’s website to hugo. He was a very curious person & had attention to detail on how the new website should look. We used to ocassionally chat about nerdy stuff. The sudden news about his tragedy left me speechless & it took me some time to realize that he’s no more. His passion towards FOSS was amazing, We lost a potential individual who could positively impact FOSS in India.
– karthik
I met Abraham during FOSSMeet 2023 in NIT Calicut. He was a very calm and curious person and was also a great presenter!
– aryak
I met Abraham in mini debconf palakkad.Then after one month In villupuran(district in Tamil nadu) planned to conduct mini debconf in tamil nadu that time weekly once we have connected in jitsi meet regarding mini debconf plan. He was such a kind and responsible person. he alway gave respect to all person words. Jan,2023 he came to villupuram for mini debconf That time we discussed more about the foss and how we can spread foss in each and very corner of the society.
I recently bought an HP Chromebook from Abhas who had already flashed coreboot in it. I ran a fresh installation of Debian 12 (Bookworm) on it with KDE Plasma.
Right after installation, the Wi-Fi and bluetooth were working, but I was facing two issues:
Playing a music file or any audio file does not give any audio.
Keyboard buttons like the ones for brightness and audio adjustment were not working (alphabet keys were working).
Fixing audio
I ran the script mentioned here and that fixed the audio.
The instructions from that link are:
git clone https://github.com/WeirdTreeThing/chromebook-linux-audio
cd chromebook-linux-audio
./setup-audio
Fixing keyboard
I asked my friend Alper for help on fixing the keyboard as he has some experience with Chromebooks. Thanks a lot Alper for the help. I am documenting our steps here for helping others who are facing this issue.
Note: This works in X11. For wayland, the steps might differ.
To set system-wide keyboard configuration on Debian systems:
$ sudo dpkg-reconfigure keyboard-configuration
Choose “Chromebook” as the “Keyboard Model”.
Each DE should default to the system configuration, but might need its own configuration which would similarly be available in their GUI tools. But you can check and set it manually from the command line, for example as in this thread.
Man, you’re no longer with us, but I am touched by the number of people you have positively impacted. Almost every DebConf23 presentations by locals I saw after you, carried how you were instrumental in bringing them there. How you were a dear friend and brother.
It’s a weird turn of events, that you left us during one thing we deeply cared and worked towards making possible since the last 3 years together. Who would have known, that “Sahil, I’m going back to my apartment tonight” and casual bye post that would be the last conversation we ever had.
Things were terrible after I heard the news. I had a hard time convincing myself to come see you one last time during your funeral. That was the last time I was going to get to see you, and I kept on looking at you. You, there in front of me, all calm, gave me peace. I’ll carry that image all my life now. Your smile will always remain with me.
Now, who’ll meet and receive me on the door at almost every Debian event (just by sheer co-incidence?). Who’ll help me speak out loud about all the Debian shortcomings (and then discuss solutions, when sober :)).
It was a testament of the amount of time we had already spent together online, that when we first met during MDC Palakkad, it didn’t feel we were physically meeting for the first time. The conversations just flowed.
Now this song is associated with you due to your speech during post MiniDebConf Palakkad dinner. Hearing it reminds me of all the times we spent together chilling and talking community (which you cared deeply about). I guess, now we can’t stop caring for the community, because your energy was contagious.
Now, I can’t directly dial your number to listen - “Hey Sahil! What’s up?” from the other end, or “Tell me, tell me” on any mention of the problem. Nor would I be able to send reference usage of your Debian packaging guide in the wild. You already know how popular this guide of yours. How many people that guide has helped with getting started with packaging. Our last telegram text was me telling you about guide usage in Ravi’s DebConf23 presentation. Did I ever tell you, I too got my first start with packaging from there. I started looking up to you from there, even before we met or talked. Now, I missed telling you, I was probably your biggest fan whenever you had the mic in hand and started speaking. You always surprised me all the insights and idea you brought and would kept on impressing me for someone who was just my age but was way more mature.
Reading recent toots from Raju Dev made me realize how much I loved your writings. You wrote
‘How the Future will remember Us’, ‘Doing what’s right’ and many more. The level of depth in your thought was unparalleled. I loved reading those. That’s why I kept pestering you to write more, which you slowly stopped. Now I fully understand why though. You were busy; really busy helping people out or just working for making things better. You were doing Debian, upstream projects, web development, designs, graphics, mentoring, free software evangelism while being the go-to person for almost everyone around. Everyone depended on you, because you were too kind to turn down anyone.
Man, I still get your spelling wrong :) Did I ever tell you that? That was the reason, I used to use AR instead online.
You’ll be missed and will always be part of our conversations, because you have left a profound impact on me, our friends, Debian India and everyone around. See you! the coolest man around.
DebConf23, the 24th annual Debian Conference, was held in India in the city of Kochi, Kerala from the 3rd to the 17th of September, 2023. Ever since I got to know about it (which was more than an year ago), I was excited to attend DebConf in my home country. This was my second DebConf, as I attended one last year in Kosovo. I was very happy that I didn’t need to apply for a visa to attend. I got full bursary to attend the event (thanks a lot to Debian for that!) which is always helpful in covering the expenses, especially if the venue is a five star hotel :)
For the conference, I submitted two talks. One was suggested by Sahil on Debian packaging for beginners, while the other was suggested by Praveen who opined that a talk covering broader topics about “freedom” in self-hosting services will be better, when I started discussing about submitting a talk about prav app project. So I submitted one on Debian packaging for beginners and the other on ideas on sustainable solutions for self-hosting.
My friend Suresh - who is enthusiastic about Debian and free software - wanted to attend the DebConf as well. When the registration started, I reminded him about applying. We landed in Kochi on the 28th of August 2023 during the festival of Onam. We celebrated Onam in Kochi, had a trip to Wayanad, and returned to Kochi. On the evening of the 3rd of September, we reached the venue - Four Points Hotel by Sheraton, at Infopark Kochi, Ernakulam, Kerala, India.
Hotel overview
The hotel had 14 floors, and featured a swimming pool and gym (these were included in our package). The hotel gave us elevator access for only our floor, along with public spaces like the reception, gym, swimming pool, and dining areas. The temperature inside the hotel was pretty cold and I had to buy a jacket to survive. Perhaps the hotel was in cahoots with winterwear companies? :)
Meals
On the first day, Suresh and I had dinner at the eatery on the third floor. At the entrance, a member of the hotel staff asked us about how many people we wanted a table for. I told her that it’s just the two of us at the moment, but (as we are attending a conference) we might be joined by others. Regardless, they gave us a table for just two. Within a few minutes, we were joined by Alper from Turkey and urbec from Germany. So we shifted to a larger table…but then we were joined by even more people, so we were busy adding more chairs to our table. urbec had already been in Kerala for the past 5-6 days and was, on one hand, very happy already with the quality and taste of bananas in Kerala…and on the other, rather afraid of the spicy food :)
Two days later, the lunch and dinner were shifted to the All Spice Restaurant on the 14th floor, but the breakfast was still served at the eatery. Since the eatery (on the 3rd floor) had greater variety of food than the other venue, this move made breakfast the best meal for me and many others. Many attendees from outside India were not accustomed to the “spicy” food. It is difficult for locals to help them, because what we consider mild can be spicy for others. It is not easy to satisfy everyone at the dining table, but I think the organizing team did a very good job in the food department. (That said, it didn’t matter for me after a point, and you will know why.) The pappadam were really good, and I liked the rice labelled “Kerala rice”. I actually brought that exact rice and pappadam home during my last trip to Kochi and everyone at my home liked it too (thanks to Abhijit PA). I also wished to eat all types of payasams from Kerala and this really happened (thanks to Sruthi who designed the menu). Every meal had a different variety of payasam and it was awesome, although I didn’t like some of them, mostly because they were very sweet. Meals were later shifted to the ground floor (taking away the best breakfast option which was the eatery).
The excellent Swag Bag
The DebConf registration desk was at the second floor. We were given a very nice swag bag. They were available in multiple colors - grey, green, blue, red - and included an umbrella, a steel mug, a multiboot USB drive by Mostly Harmless, a thermal flask, a mug by Canonical, a paper coaster, and stickers. It rained almost every day in Kochi during our stay, so handing out an umbrella to every attendee was a good idea.
A gift for Nattie
During breakfast one day, Nattie (Belgium) expressed the desire to buy a coffee filter. The next time I went to the market, I bought a coffee filter for her as a gift. She seemed happy with the gift and was flattered to receive a gift from a young man :)
Being a mentor
There were many newbies who were eager to learn and contribute to Debian. So, I mentored whoever came to me and was interested in learning. I conducted a packaging workshop in the bootcamp, but could only cover how to set up the Debian Unstable environment, and had to leave out how to package (but I covered that in my talk). Carlos (Brazil) gave a keysigning session in the bootcamp. Praveen was also mentoring in the bootcamp. I helped people understand why we sign GPG keys and how to sign them. I planned to take a workshop on it but cancelled it later.
My talk
My Debian packaging talk was on the 10th of September, 2023. I had not prepared slides for my Debian packaging talk in advance - I thought that I could do it during the trip, but I didn’t get the time…so I prepared them on the day before the talk. Since it was mostly a tutorial, the slides did not need much preparation. My thanks to Suresh, who helped me with the slides and made it possible to complete them in such a short time frame.
My talk was well-received by the audience, going by their comments. I am glad that I could give an interesting presentation.
Visiting a saree shop
After my talk, Suresh, Alper, and I went with Anisa and Kristi - who are both from Albania, and have a never-ending fascination for Indian culture :) - to buy them sarees. We took autos to Kakkanad market and found a shop with a great variety of sarees. I was slightly familiar with the area around the hotel, as I had been there for a week. Indian women usually don’t try on sarees while buying - they just select the design. But Anisa wanted to put one on and take a few photos as well. The shop staff did not have a trial saree for this purpose, so they took a saree from a mannequin. It took about an hour for the lady at the shop to help Anisa put on that saree…but you could tell that she was in heaven wearing that saree, and she bought it immediately :) Alper also bought a saree to take back to Turkey for his mother. Me and Suresh wanted to buy a kurta which would go well with the mundu we already had, but we could not find anything to our liking.
Cheese and Wine Party
On the 11th of September we had the Cheese and Wine Party, a tradition of every DebConf. I brought Kaju Samosa and Nankhatai from home. Many attendees expressed their appreciation for the samosas. During the party, I was with Abhas and had a lot of fun. Abhas brought packets of paan and served them at the Cheese and Wine Party. We discussed interesting things and ate burgers. But due to the restrictive alcohol laws in the state, it was less fun compared to the previous DebConfs - you could only drink alcohol served by the hotel in public places. If you bought your own alcohol, you could only drink in private places (such as in your room, or a friend’s room), but not in public places.
Party at my room
Last year, Joenio (Brazilian) brought pastis from France which I liked. He brought the same alocholic drink this year too. So I invited him to my room after the Cheese and Wine party to have pastis. My idea was to have them with my roommate Suresh and Joenio. But then we permitted Joenio to bring as many people as he wanted…and he ended up bringing some ten people. Suddenly, the room was crowded. I was having good time at the party, serving them the snacks given to me by Abhas. The news of an alcohol party at my room spread like wildfire. Soon there were so many people that the AC became ineffective and I found myself sweating.
I left the room and roamed around in the hotel for some fresh air. I came back after about 1.5 hours - for most part, I was sitting at the ground floor with TK Saurabh. And then I met Abraham near the gym (which was my last meeting with him). I came back to my room at around 2:30 AM. Nobody seemed to have realized that I was gone. They were thanking me for hosting such a good party. A lot of people left at that point and the remaining people were playing songs and dancing (everyone was dancing all along!). I had no energy left to dance and to join them. They left around 03:00 AM. But I am glad that people enjoyed partying in my room.
Sadhya Thali
On the 12th of September, we had a sadhya thali for lunch. It is a vegetarian thali served on a banana leaf on the eve of Thiruvonam. It wasn’t Thiruvonam on this day, but we got a special and filling lunch. The rasam and payasam were especially yummy.
Day trip
On the 13th of September, we had a daytrip. I chose the daytrip houseboat in Allepey. Suresh chose the same, and we registered for it as soon as it was open. This was the most sought-after daytrip by the DebConf attendees - around 80 people registered for it.
Our bus was set to leave at 9 AM on the 13th of September. Me and Suresh woke up at 8:40 and hurried to get to the bus in time. It took two hours to reach the venue where we get the houseboat.
The houseboat experience was good. The trip featured some good scenery. I got to experience the renowned Kerala backwaters. We were served food on the boat. We also stopped at a place and had coconut water. By evening, we came back to the place where we had boarded the boat.
A good friend lost
When we came back from the daytrip, we received news that Abhraham Raji was involved in a fatal accident during a kayaking trip.
Abraham Raji was a very good friend of mine. In my Albania-Kosovo-Dubai trip last year, he was my roommate at our Tirana apartment. I roamed around in Dubai with him, and we had many discussions during DebConf22 Kosovo. He was the one who took the photo of me on my homepage. I also met him in MiniDebConf22 Palakkad and MiniDebConf23 Tamil Nadu, and went to his flat in Kochi this year in June.
We had many projects in common. He was a Free Software activist and was the designer of the DebConf23 logo, in addition to those for other Debian events in India.
We were all fairly shocked by the news. I was devastated. Food lost its taste, and it became difficult to sleep. That night, Anisa and Kristi cheered me up and gave me company. Thanks a lot to them.
The next day, Joenio also tried to console me. I thank him for doing a great job. I thank everyone who helped me in coping with the difficult situation.
On the next day (the 14th of September), the Debian project leader Jonathan Carter addressed and announced the news officially. THe Debian project also mentioned it on their website.
Abraham was supposed to give a talk, but following the incident, all talks were cancelled for the day. The conference dinner was also cancelled.
As I write, 9 days have passed since his death, but even now I cannot come to terms with it.
Visiting Abraham’s house
On the 15th of September, the conference ran two buses from the hotel to Abraham’s house in Kottayam (2 hours ride). I hopped in the first bus and my mood was not very good. Evangelos (Germany) was sitting opposite me, and he began conversing with me. The distraction helped and I was back to normal for a while. Thanks to Evangelos as he supported me a lot on that trip. He was also very impressed by my use of the StreetComplete app which I was using to edit OpenStreetMap.
In two hours, we reached Abraham’s house. I couldn’t control myself and burst into tears. I went to see the body. I met his family (mother, father and sister), but I had nothing to say and I felt helpless. Owing to the loss of sleep and appetite over the past few days, I had no energy, and didn’t think it was good idea for me to stay there. I went back by taking the bus after one hour and had lunch at the hotel. I withdrew my talk scheduled for the 16th of September.
A Japanese gift
I got a nice Japanese gift from Niibe Yutaka (Japan) - a folder to keep papers which had ancient Japanese manga characters. He said he felt guilty as he swapped his talk with me and so it got rescheduled from 12th September to 16 September which I withdrew later.
Group photo
On the 16th of September, we had a group photo. I am glad that this year I was more clear in this picture than in DebConf22.
Volunteer work and talks attended
I attended the training session for the video team and worked as a camera operator. The Bits from DPL was nice. I enjoyed Abhas’ presentation on home automation. He basically demonstrated how he liberated Internet-enabled home devices. I also liked Kristi’s presentation on ways to engage with the GNOME community.
I also attended lightning talks on the last day. Badri, Wouter, and I gave a demo on how to register on the Prav app. Prav got a fair share of advertising during the last few days.
The night of the 17th of September
Suresh left the hotel and Badri joined me in my room. Thanks to the efforts of Abhijit PA, Kiran, and Ananthu, I wore a mundu.
I then joined Kalyani, Mangesh, Ruchika, Anisa, Ananthu and Kiran. We took pictures and this marked the last night of DebConf23.
Departure day
The 18th of September was the day of departure. Badri slept in my room and left early morning (06:30 AM). I dropped him off at the hotel gate. The breakfast was at the eatery (3rd floor) again, and it was good.
Sahil, Saswata, Nilesh, and I hung out on the ground floor.
I had an 8 PM flight from Kochi to Delhi, for which I took a cab with Rhonda (Austria), Michael (Nigeria) and Yash (India). We were joined by other DebConf23 attendees at the Kochi airport, where we took another selfie.
Joost and I were on the same flight, and we sat next to each other. He then took a connecting flight from Delhi to Netherlands, while I went with Yash to the New Delhi Railway Station, where we took our respective trains. I reached home on the morning of the 19th of September, 2023.
Big thanks to the organizers
DebConf23 was hard to organize - strict alcohol laws, weird hotel rules, death of a close friend (almost a family member), and a scary notice by the immigration bureau. The people from the team are my close friends and I am proud of them for organizing such a good event.
None of this would have been possible without the organizers who put more than a year-long voluntary effort to produce this. In the meanwhile, many of them had organized local events in the time leading up to DebConf. Kudos to them.
The organizers also tried their best to get clearance for countries not approved by the ministry. I am also sad that people from China, Kosovo, and Iran could not join. In particular, I feel bad for people from Kosovo who wanted to attend but could not (as India does not consider their passport to be a valid travel document), considering how we Indians were so well-received in their country last year.
Note about myself
I am writing this on the 22nd of September, 2023. It took me three days to put up this post - this was one of the tragic and hard posts for me to write. I have literally forced myself to write this. I have still not recovered from the loss of my friend. Thanks a lot to all those who helped me.
Earlier this year, gandi.net’s ownership changed and it was acquired by Total Webhosting Solutions. My domain and email were both hosted by this provider. Since I didn’t agree with the ownership change, I decided to switch my email provider. After discussing with Sahil, Snehal, Praveen, Nilesh, I shortlisted two email providers to choose from for ravi at ravidwivedi.in. One was purelymail and the other was mailbox.org. Since purelymail($10 per year) was cheaper than mailbox(€36 per year), I decided to give it a try. If this does not work out, I thought, I will switch to mailbox later.
Below are my steps on how I did it. The steps will be same in principle for any other provider you would like to switch to. So the guide will be helpful to you if you want to switch to any other email provider other than purelymail.
Be sure to read docs of the email provider you want to switch to in addition to this guide.
Step 1: Create an account on purelymail.com
First, I signed up on purelymail and created an account (like something@purelymail.com). They charged $10 upfront for creating this acount.
Step 2: Add your domain to your purelymail account
Sign in to your purelymail account and click on Domains section on the top and you will see a page like the screenshot below:
Click on ‘Add new domain’ as in the above screenshot.
Step 3: Enter domain name
Enter your domain name (like example.com) to the page which you got after clicking ‘Add new domain’ in last step.
Step 4: Create an MX record
Create a new MX record in your gandi.net portal or whatever domain registrar you bought your domain from. Use your mail provider docs to obtain these values and plug in.
Type
Host
Value
MX
(Empty)
mailserver.purelymail.com. (this is a sample value, you should put the value recommended by your email provider. dot at the end of the value is important.)
Step 5: Add an SPF record
Create a new SPF record as you did in Step 4. Again, use your mail provider docs to obtain these values and plug in.
Type
Host
Value
TXT
(Empty)
v=spf1 include:_spf.purelymail.com ~all (this is a sample value, you should put the value recommended by your email provider)
Step 6: Add a TXT record to prove that you own the domain
I am not sure if this step is necessary for other email providers or even for purelymail, but since it was recommended by their docs I added this value from my gandi.net portal. It is a TXT record like this:
Type
Host
Value
TXT
(Empty)
Redacted
Step 7: Add DKIM signatures
DKIM signature is for the email receiver to verify whether the email has indeed been sent by the domain owner. It is highly recommended. You can read more about DKIM signature here. Read your docs of your email provider and put the respective values.
Below is a sample taken from my steps:
Type
Host
Value
CNAME
purelymail1._domainkey
key1.dkimroot.purelymail.com.
Note: the dot at the end is important.
I added two other CNAME records in this step as suggested by purelymail docs.
Step 8: Add DMARC record
Create a DMARC record (check your provider docs for values) as you created other records in previous steps.
Type
Host
Value
CNAME
check your docs
check your docs
Step 9: Check your DNS records
Now we verify whether our records point to our new provider. Purelymail portal has a button ‘Check DNS records’ and it can find whether records you entered are correct. It takes a few minutes and sometimes a few hours for the DNS records to propagate.
Step 10: Create account on new provider
After all the records have been correctly added, create an account on purelymail by clicking ‘Users’ button at the top and create a new user. I created ravi@ user on my domain from there.
Step 11: Import data from gandi.net email
purelymail has an option to import data, like emails, calendar and address book from previous account. Use that option to import emails from gandi.net. Or you can use IMAP to login to your new provider in an email client like Thunderbird and manually copy all the emails to your new account.
Step 12: Delete gandi.net email and DNS records
Delete gandi.net email from the gandi.net portal and remove all the previous records which point to gandi.net for email(like MX, SPF, DKIM).
You are done. Enjoy your new email provider and let me know which one you switched to and why :-)
I installed FreeBSD 13.2 with KDE today on my Dell Inspiron 5482. I have heard good things about FreeBSD primarily as an operating system for servers, but the project claims that it works well for desktop users as well. So, I thought I will give it a try. There were some things I had to figure out during the installation which I will note in this post for future reference. And I had to uninstall FreeBSD within hours of installation, due to issues I faced so it didn’t went well. I am going to list them here and how I figured out some things.
Regdomain selection during install
During install, the installer asked me to select a regdomain. I figured out that the default option – FCC/United States of America worked for me.
Xorg didn’t startup
Post installation, I installed xorg in FreeBSD and added a file /usr/local/etc/X11/xorg.conf.d/20-intel.conf as per the example 1 in the official handbook. But startx command wasn’t working, so I ran the command:
Xorg -configure
and then
cp /root/xorg.conf.new /usr/local/etc/X11/xorg.conf followed by editing the file /usr/local/etc/X11/xorg.conf by changing Driver value to "i1915kms" under the Section “Device”.
Managing brightness during startup
When using FreeBSD, my keyboard’s brightness buttons were not working. To decrease brightness, I used the preinstalled backlight utility.
I couldn’t manage the brightness to be automatically low at startup. It was at 100% after very time I booted.
Crashed frequently
The system crashed frequently and wasn’t stabled at all. It automatically reboots after some time. I tried to debug and fix, but couldn’t. So, for now I have uninstalled FreeBSD.
Snikket is a server side software for XMPP chat communications. This guide is for anyone who wants to set up a Snikket server behind nginx. The operating system on the server is debian in my case. My guide is based on the official guide.
Run all the commands mentioned below as root.
Point your domain to server’s IP address
Install curl for debian
apt install curl
Now run:
curl -4 ifconfig.co
The output of the previous command is the IP Address of the server you are using.
Create an A record corresponding to the domain you want to use. Since I have domain ravidwivedi.in, I will deploy my chat server at the subdomain chat.ravidwivedi.in.
Create CNAME records for groups.chat.ravidwivedi.in and share.chat.ravidwivedi.in so that they point to chat.ravidwivedi.in
Open required ports
Open required ports if you are behind a firewall like ufw. The official Snikket docs list which ones you have to allow.
Docker and snikket configuration
Install docker and docker-compose packages on your server. The commands for debian are:
apt install docker docker-compose
Snikket configuration
Create a snikket config file and download docker-compose.yml file prepared by the Snikket project.
mkdir /etc/snikket
cd /etc/snikket
curl -o docker-compose.yml https://snikket.org/service/resources/docker-compose.beta.yml
Create a file named snikket.conf in the /etc/snikket directory with the following contents (replace appropriate fields according to your domain and email):
# The primary domain of your Snikket instance
SNIKKET_DOMAIN=chat.ravidwivedi.in
# An email address where the admin can be contacted
# (also used to register your Let's Encrypt account to obtain certificates)
SNIKKET_ADMIN_EMAIL=your-email@ravidwivedi.in
Nginx config and HTTPS
For nginx setup, we follow Snikket project’s reverse proxy docs. We will also setup HTTPS certificates using certbot. Let’s install nginx and certbot:
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/chat.ravidwivedi.in/fullchain.pem
Key is saved at: /etc/letsencrypt/live/chat.ravidwivedi.in/privkey.pem
This certificate expires on 2023-10-23.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
We want nginx to listen at ports 80 and 443. So, let’s direct Snikket to bind to ports 5080 and 5443 to avoid conflict with nginx. To do this, add these lines to /etc/snikket/snikket.conf:
Now create a file /etc/nginx/sites-available/chat.ravidwivedi.in and add the following contents to it, followed by replacing ravidwivedi.in with your domain name and specifying correct ssl_certificate path to the location of your certificates.
server {
# Accept HTTP connections
listen 80;
listen [::]:80;
server_name chat.ravidwivedi.in;
server_name groups.chat.ravidwivedi.in;
server_name share.chat.ravidwivedi.in;
location / {
proxy_pass http://localhost:5080/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# This is the maximum size of uploaded files in Snikket
client_max_body_size 104857616; # 100MB + 16 bytes
}
}
server {
# Accept HTTPS connections
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /path/to/certificate.pem;
ssl_certificate_key /path/to/key.pem;
server_name chat.ravidwivedi.in;
server_name groups.chat.ravidwivedi.in;
server_name share.chat.ravidwivedi.in;
location / {
proxy_pass https://localhost:5443/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# REMOVE THIS IF YOU CHANGE `localhost` TO ANYTHING ELSE ABOVE
proxy_ssl_verify off;
proxy_set_header X-Forwarded-Proto https;
proxy_ssl_server_name on;
# This is the maximum size of uploaded files in Snikket
client_max_body_size 104857616; # 100MB + 16 bytes
# For BOSH and WebSockets
proxy_set_header Connection $http_connection;
proxy_set_header Upgrade $http_upgrade;
proxy_read_timeout 900s;
}
}
In the above config, we need to specify path to our certificates created by certbot in an earlier step of this guide. Locate the following lines:
The output of my certbot command earlier told me that the certificates are at /etc/letsencrypt/live/chat.ravidwivedi.in/fullchain.pem and ssl_key is at /etc/letsencrypt/live/chat.ravidwivedi.in/privkey.pem
So we change the above mentioned two lines in the nginx config at /etc/nginx/sites-available/chat.ravidwivedi.in to:
Snikket project has a page mentioning additional lines you can add to your snikket config file, like for example, setting limit on size of each attachment. Also, check out the upgrade page on how to keep snikket software updated.
If you are using Snikket, be sure to donate to the Snikket project to support them.
We are pleased to announce that we got a grant from FOSS United worth ₹1 lakh, which helps us in maintaining the existing various services we provide which includes, but not limited to poddery.com, codema.in etc. Our funds are managed by non-profit Navodaya Networks as we are not a registered organization.
We thank FOSS United and Navodaya for their support. Thanks to contributions like these, due to which we are able to run privacy respecting services for the general public. Consider donating to FSCI today to keep our services running. You can see how we spend this money at the accounting page.
For two years 2023 and 2024, we targeted ₹1,50,000 as amount for crowdfunding campaign. Getting ₹1,00,000 from this grant means our target from donors is reduced to ₹50,000 for these two years.
We thank all the people who donate to us and volunteer time to run these services. Without them it would not have been possible. We are always looking for new people to volunteer and if you are interested, talk to us. Here is list of services we provide. Feel free to use them!
Help us through your donations so that community backed privacy respecting services continue running.
You might have already read my blog titled ‘Running PostmarketOS on my
phone’. After running pmOS on phone, my mind kept talking “run
Debian”. So I started preparing for that.
At the moment no straight way tool exist in Debian like
postmarketOS’s pmbootstrap. Well I can compile what is already available,
do debootstrap rootfs. But I don’t know how to build the final image
that can be flashed from recovery.
One crooked idea I had is, extract the pmOS image, find the packages
and its configurations. For eg: usbmodem package in postmarketos are
configured to connect to host network when plugged.
I deboostrap’ed the rootfs, compared with postmarketos and installed
extra packages and copied configuration. I repacked and compressed to
new image. Then flashed with twrp.
The phone was booting. So I connected the usb cable and run,
ssh abhijith@172.16.42.1
abhijith@172.16.42.1's password:
Linux arm64 3.10.107-Cherry #1-postmarketOS SMP PREEMPT Sat Dec 18 13:08:52 UTC 2021 aarch64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
abhijith@arm64:$
Yay!. I have a working Debian phone. I quickly installed lxde and that is
working perfectly.
Recently, I read news about Karnataka state government announcing free bus rides for women in the state. It was in the Indian National Congress’ pre-election guarantee, so no big surprise on the announcement. I wondered what changes this announcement makes in terms of people’s lives, even when the Delhi government announced such a scheme earlier. I thought such a decision is far from attaining any real goals of women safety and is only an easy way for politicians to earn some goodwill in the name of gender equality, rather than doing any long term work for gender equality. Earlier when I saw advertisements of providing free bus tickets by the Delhi government, they never mentioned any claims on what this move is intended for. One thing I could infer was that greater number of women going out may impact safety, but I was overall not sure on what this policy achieves.
I got a new perspective on the issue when, a couple of days ago, I read an article by The Guardian on the same topic. Then I found another article with similar arguments in the Indian Express. Later I read a report in the Times of India on how free bus ride scheme helped women in Chennai. These writeups shed light on the benefits of free bus rides to women which I could not think of myself (shows my ignorance:( ).
You can click on the links of the articles and read them there. But I will summarize here: In India, many women rely on family males for money (which is also used as a form of control) and so they have to rely on their savings to travel. I also had misconception, due to the scheme’s counterpart in Delhi, that the fares of city buses are not much to make a real difference. But in the Karnataka case they are. I know from my experience that Karnataka’s capital city Bengaluru has expensive public transport compared to other Indian cities. For example, bus fare from Bengaluru Airport to Satellite Bus station, which is also in Bengaluru, was 246 Indian Rupees six years ago, and I have never seen such a high price in a city bus run by government within any other Indian city. Also, due to scheme being available in the whole state, which I somehow overlooked, women will be able to get free rides for which they would have to pay huge amount otherwise. This will boost their savings, ease travel for women, increase the number of women in public transport leading to even more women travelling in buses. It is also expected to increase women participation in labour which matters in a country where women labour participation is very low. Obviously, such a scheme also needs to be evaluated in terms of economic terms and bigger picture of state finances, but the point is that the scheme has a lot of potential and upsides, where I struggled to find any.
DebUtsav Kochi 2023 was held on June 17th, 2023, at Model Engineering College, Thrikkakara, Kochi. This was organized by the team at FOSSMEC with help from Abraham Raji.
I first heard about DebUtsav when, in our DebConf India team meeting, Abraham, mentioned that a college in Kochi wants to host a Debian event. As most folks were already engaged in DebConf related stuff, it was mostly he who helped and guided them for the event. Though, in the meeting, Abraham and Kiran joked around on the line that we might have someone coming from Gurugram (referring to me). Back then, I had no plans of attending the event; I didn’t know how things would change eventually, and I, along with Ravi were going to attend the event eventually and speak at it too.
The concept of DebUtsav was conceived in the Debian India community on the premise that it’s not possible to have all talks directly related to Debian and/or Free Software. The first of DebUtsav’s was also held in Kochi in 2017. Later, DebUtsav Goa and Delhi also took place. You can check out DebUtsav website archives here. Looking at this archive, it seems DebUtsav predates DebUtsav Kochi 2017. Maybe someone who attended those can shed some more light on the origin.
Coming back to DebUtsav Kochi 2023, seeing that the event is on a Saturday and remembering how fun Debian IRL events are, I eventually decided to attend the conference anyhow. I asked Ravi if he wanted to join, and he agreed. On learning about this later, Abraham called and asked if I could give a talk on the Debian community, as I actually came through the community route, doing community stuff to become a Debian Developer. I agreed without much thought (I usually agree to all speaking engagements at Debian events somehow; I speak too much sometimes :)), as I was in train then. Eventually, I had the (in my mind, brilliant) idea to name my talk “How I Became a Debian Developer, and you could too”.
As usual, Ravi and I met directly at the Delhi airport, from where we had our Kochi flight. Due to busy days preceding the conference, I hadn’t fully prepared my presentation uptil the day of the conference. We landed a day before in Kochi, but I was too tired to be up for completing the presentation, so I asked Ravi to wake me up at 6 in the morning, which he indeed did. I managed to cobble together the final presentation and structure in 1.3 hours. Then we walked to the venue, which was some 900 meters from our hotel, where we met my speaker POC, Arjun, who was a first-year and core team member of FOSSMEC there. He helped me with various things during the conference, for which I’m grateful. Then I got busy meeting old and new friends.
This was my debut on an event standee. Image stolen from Kurian's blog :P
The conference started with a lamp lighting ceremony, followed by a panel discussion on the topic “Introduction to Debian: Exploring the Foundations of Open Source.” . Abraham, Abhijit, Bilal and I were on the panel with a moderator. In the first segment, an already prepared set of questions was posed to us, which turned out a bit formal. The team had arranged for the audience to pose their own questions, which were in turn displayed on screen. In the next segment, the moderator helped us go through the questions, which ranged from how stable releases are managed to opinions on Snap and AppImage to what desktop environment we run. This turned out to be an interesting discussion. Following this, attendees moved to their respective talk venues. I had my talk in set 1, so I went there. My talk was preceded by Andrew Bastin’s talk on “A journey in the world of sync systems”. He presented the talk like a story, where he mentioned the name of the project first and walked us through the journey before concluding with revealing the full name, which directly correlated with the journey. Andrew did a great talk, filled with quirky anecdotes, humor, and technical facts that essentially held my attention throughout the time he was speaking at the dias. I really looked up to his delivery and the ease with which he gave the talk. It essentially made me nervous for my own talk. His talk gave me multiple pointers to work upon for improving my talks. Thanks, Andrew.
Abraham and me during the panel discussion
Me presenting my DD journey
Next came my talk, which turned out better than I had anticipated, and I did manage to speak for 30 minutes straight without knowing as I didn’t have any clock in sight. My talk, “How I became a Debian Developer, and you could too” chronicled my journey of becoming a Debian Developer, non uploading. When Abraham called me to present a talk on the Debian community, I thought about how the Debian community functions. But as I gave the topic some thought, I found that just telling the audience what and how things work on Debian would be uninteresting. Making a story about it would spice things up a little. Then the idea of telling my journey and connecting it with how things are done in the Debian community came to me, which I formulated into the talk. My talk was followed by a small Debian quiz and then Kurian’s talk on “AI with Malayalam Computing” which was dense with facts and AI, which isn’t my area.
The good folks at FOSSMEC sent some pictures as well, so I have more photos than usual to share here.
This time around, we did manage to roam around the city for some sightseeing. We managed to cover Marine Drive, Kochi Water Metro, Fort Kochi and Jew Town, which were beautiful and colorful. Going around Kochi Water Metro, with large windows through the backwaters, was real fun. I had never thought a metro-like service could be implemented for daily commutes; it would be a real good use of the water bodies of a city built around water.
A Street in Jew Town, Kochi
Kochi Water Metro
Overall, it was a fun and productive trip. I also got to know the geography of Kochi before coming back here for DebConf.
OpenStreetMap (OSM) is a free, open geographic database which is community maintained and directly or indirectly used by corporations and common folks alike. It’s mostly used by privacy centric users, who don’t want to use Google Maps. I’m an avid fan of OpenStreetMap since 2020 and love tracing roads and adding missing areas for it. The idea to have a mapathon in Chandni Chowk came from seeing many unmapped banks and ATMs there. I had never attended an OSM mapathon before and had no idea how things work out in one other than just getting people together and map to improve Chandni Chowk map. Had this discussion with contrapunctus (Kashish) when we first met. contrapunctus has been mapping public transport (and other stuff) in Delhi since a very long time. He’s the reason, we have most of the Delhi-NCR bus routes in OSM in navigable state. contra and I, met and deliberated on how we’ll organize this while mapping Nehru Place, He also had some experience teaching newcomers OSM mapping due to his present work.
It was decided that the mapathon cum meetup would be held on 11th June with venue being Kacha Bagh. Invites were sent on OSM-IN channels, mailing list and other free software aligned places. 11 folks showed interest (which was 8 more than we anticipated). After, Ravi and I showed up at the park. We got to know that the park remain close on Sundays, which was a bummer. We scrabbled to find an alternate meetup spot, as we wanted shade for the initial hour or so to sit and know all the attendees and zeroed in on Company Bagh, which was not the most ideal place to sit and talk due to multiple cricket matches going around. In total 6 folks showed up. Ravi, contrapunctus, Kuber, Hari, muzirian (Kelvin) and me. We had a small meet and greet and then discussed our motivations for using and contributing to OSM. Then contra did an introductory session on contributing through Vespucci. I used to find Vespucci too complicated and use to stick to StreetComplete and OSMand for my mobile contributions. Post the session, got a basic idea of how things work out in Vespucci. Then we proceeded to the main street of Chandni Chowk together for mapathon. We divided who would do what nodes. I started added surveillance cameras, banks and ATMs, Ravi started added dustbins, muzirian did mostly shop, while contra, Hari and Kuber mostly did freestyle edits. We mapped for almost an hour and did around 500 meters covering streets from Company Bagh till Fathepuri Masjid. Though we weren’t able to cover more ground, it is anyhow progress towards a better OSM.
It was a fun and interesting meetup, and we plan to continue holding these mapathon-meetups in various parts of Delhi.
Mapathon participants group photo. Click to enlarge From left - Kuber, Hari, me, muzirian, Ravi and contrapunctus.
As the tradition dictates, we at Debian India organised an online release party for the next stable release of Debian, codenamed bookworm on 10th June. The initial discussion started a while back, but we had a planning meeting just 3–4 days before the release party date. As most of us were busy with DebConf or DebUtsav Kochi stuff, we didn’t have time to explore new ideas for events . The consensus was to have a technical overview of changes, a Debian trivia quiz and ending with SuperTuxKart gaming event. As we used to keep discussion improvements to Debian, we decided to hold a discussion on What Debian lacks/need to improve. This was later taken up by Akshay. A call for proposal was sent along with announcement on debian-dug-in mailing lists and Debian India channels, though no one took that offer.
As Jitsi usually fumbles with large crowds with camera on. We choose to have the party on BigBlueButton. Like last year, Abhas generously supported us with a room on his BigBlueButton instance, and we created a redirect behind 12.debian.org.in to this room.
On 10th, the release party started around 7:45 PM IST. As usual, the mood was light and fun. Around 16 people joined the party at it’s highest. Abraham started with a technical overview covering changes in bookworm. A major highlight for me was the inclusion of non-free firmware on official ISOs, which would essentially ease one of the biggest pain point for new user on-boarding. Now, I would be able to directly recommend Debian to new users, rather than Linux Mint, due to getting the firmware right. Sidenote, I too personally struggled with getting the drivers right for almost a month when I started using Debian way back in 2020. Coming back, technical overview was followed by Debian trivia by Anupa. Initially I was confident about the quiz, though the questions Anupa brought were harder than I had anticipated and taught quite a few things about Debian. This was followed by Akshay’s “Discussion - What Debian lacks/need to improve” session. Akshay, being an Arch user, had some insights to highlight where Debian can improve. He had collected statements and walked us through the viewpoints. Meanwhile, Abraham also gave a quick overview of a draft re-design for debian.org.in website to ease user onboarding, which he mentioned we lack. Then we took the group photo and moved onto the SuperTuxKart gaming party, which was fun as always. We did record the party, but I have no ETA when this would be available.
I’m yet to upgrade servers under my management to bookworm, as I usually wait it out a few days after a release so that teeny-tiny bugs are reported and iron-ed out and for cooling down of download mirror loads. Maintaining a Matrix instance through synapse has made me cautious about not being on the bleeding edge of new releases. Recently, also got a new perspective that with the now omni-present mix-match usage of third party repositories, waiting a little more bit for them to be up to speed with new stable would remove much of the troubles post updates.
Good then, and see you in DebUtsav Kochi and/or DebConf Kochi :)
Movim is a federated blogging and chat platform that acts as a web frontend for the XMPP protocol.
The project’s web UI for xmpp (jabber) is really good & also mobile friendly. I have observed that the project does not have a CI/CD setup so far & thought of adding one. I have added basic CI/CD work for the movim repository on github with github actions. For every commit & pull request to master branch, the app is built in the pipeline & if successful, a docker image is uploaded to movim’s repositoy on docker hub.
The team had given me feedback during the implementation & i had a chance to explore new concepts in docker image building & some bash scripting as well! I have also planned to automate the docker image building for stable releases, But the team preferred to do it manually.
Imposter syndrome, a struggle experienced by many, has been a constant presence in my life. Despite my coding skills and technical knowledge, there are times when I can’t help but feel like a fraud, merely faking my way through. But I’ve come to realize that imposter syndrome is a common phenomenon, and I am not alone in this battle. Through self-reflection and embracing my true abilities, I’ve learned to navigate these feelings and grow both personally and professionally.
Imposter syndrome has haunted me, causing self-doubt and fear of being exposed as a fraud, even when I have evidence of my accomplishments and experience. My friend Akshay S Dinesh during a discussion recently said
“See, imposter syndrome - many suffer from.
One part of it maybe real. But those with imposter syndrome usually overcompensate by building lots of skill.
Now, the false part of it goes away only when you work in a company with others and realize how stupid most others are.”
Acknowledging my own coding skills and technical knowledge has been a crucial step in overcoming imposter syndrome. I’ve come to realize that the countless hours I’ve invested in honing my craft and the continuous learning I pursue are worthy achievements. It’s important to give ourselves credit for the progress we’ve made and recognize that genuine expertise is a result of consistent effort, learning, and problem-solving.
It’s easy to believe that everyone around me possesses unwavering knowledge and proficiency, which can make my own accomplishments seem insignificant. But the truth is, we are all constantly learning and growing. The tech world, like any other field, is vast and ever-evolving. Understanding that even experienced professionals have moments of uncertainty and a desire for more knowledge has helped me put my imposter syndrome into perspective. Learning is a lifelong journey, and one’s willingness to adapt and acquire new skills is a testament to one’s dedication and passion.
Being part of a team or a community has been a transformative experience in my battle against imposter syndrome. Engaging with like-minded individuals has exposed me to diverse perspectives, skill sets, and experiences. Collaborating and sharing knowledge has shown me that even those I once considered superior also have their moments of doubt. Embracing the support and mentorship available within my community has reminded me that we all start somewhere, and it’s the collective journey of growth that propels us forward.
While imposter syndrome still lingers at times, I am learning to celebrate my achievements and embrace my unique journey. I am not defined by my doubts or insecurities. Instead, I am defined by my perseverance, my ability to learn and adapt, and my passion for technology. Each step forward, no matter how small, is a testament to my growth and dedication.
A writ petition has been filed on the matter by Praveen and Kiran on behalf of FSCI with the assistance of lawyers from SFLC.in in the Kerala High Court.
As per media reports, 14 apps including Free Software ones like Element and
Briar are banned in India as of 3rd May 1. As per reports the
reasoning behind the ban seems to be, “These apps do not have any
representatives in India and cannot be contacted for seeking information as
mandated by the Indian laws”. This statement indicates to us that there are gaps
in understanding on how federated services work (see Notes section
below for a detailed explanation).
There is a lack of clarity on the manner in which the ban will be implemented.
We assume that the applications will be de-listed from the app stores.
Element, the company behind Element app, has put out a statement 2
explaining their position on the ban. We get to know that Indian authorities
have contacted them in the past to which they have responded constructively
which goes against observed reasoning for the ban. Element also had to know
about the ban from media reports since there was no communication informing them
of the ban.
While Element never compromises end-to-end encryption or user privacy, we have
been contacted by Indian authorities in the past and addressed them in a
constructive fashion (typically responding same-day).
As we understand it, Indian government officials claim to have approved the
ban due to Element (and other apps) not having representatives in India.
That is a bit of guesswork on our part, because we did not receive any prior
notice of the decision; clarification from the Ministry of Electronics and
Information Technology would be most welcome.
There seems to be a lack of understanding on part of the government on how these
P2P software as well as federated apps work. These applications have been
crucial for communication during disasters and are used regularly as
communication medium in workplaces.
The ban, we believe, will not serve the purpose as there are many anonymous
alternate apps that can be used by terror outfits to fill their purpose.
Federated, peer-to-peer, encrypted, Free Software apps/software like Element and
Briar, should be promoted. They are key to our national security as they provide
means to enable sovereign, private and secure communication to citizens of
India. Element has been embraced by Governments of France 3,
Germany 4 and Sweden 5 which should be an example for
India.
Notes:
Email is federated, has existed for a long time, and the logic which they
applied to banning Element would apply to K-9 Mail, a Free Software client app
for email, as well. Email service is provided by many service providers like
Google, Microsoft and many others who don’t have any representatives in India.
Matrix, like email, is federated and is the protocol behind the service. Element
is just one of the matrix clients and matrix.org is just one of the matrix
service providers. Banning all instances, clients and implementations of matrix
is similar to banning all email service providers, email clients and whole email
infrastructure, which would be nearly impossible for the government and a new
service provider and/or client can come up very easily rather quickly.
Similar to how Matrix is federated, Briar is a P2P (peer-to-peer) app which
means it does not even have a service provider and users who use it need to be
online concurrently. Also it does not require internet connection and can be
used over a bluetooth or wireless connection. It is useful in emergency
situations like natural disasters where all other media for communications
become offline.
We had to share the archive links to all element.io website links since it’s already
blocked by multiple ISPs in India.