July 8, 2018

Thoughts on Reddit and it's redesign

I opted in to reddit’s redesign and used it for an entire month to see how it compares to the existing design. After a month of using the redesigned site, I went back to the old design. I wanted to share my experience using the redesigned site, what works, what doesn’t and try and understand some of the motivations for redesigning the entire site.

A little context is required to understand why reddit is redesigning the entire site. Reddit CEO Steve Huffman was asked about the goals of the redesign and this is what he had to say :

Read more

January 21, 2018

The strange launch of Hackers Chat

I recently launched Hackers Chat as an experiment to build the community site that I wish existed : public chat room based communites, pseudonymous users, transparent moderation logs, an open source code base and a site that is welcoming to non-technical users. I launched it as a single chat room for all discussions and support for user created chat rooms will be added shortly. An analogy might help : Reddit for chat rooms.

I originally launched the site under the name Bored Hackers , on the 1st of January, 2018 to an underwhelming response. The site didn’t get traction in any of the communities where I posted, yet what followed was an interesting series of events. Someone noticed that the chat room didn’t have basic anti-spam measures and posted a link to 4chan asking for help in spamming the chat room. Soon, the trolls and spammers showed up and started posting links to porn, messages about Hitler and other offensive content.

Read more

November 1, 2017

Building a chat room using Django Channels

TL;DR : Code is on Github. In this post I explain how you can build a chat room using Django Channels.

A standard Django application handles http requests using a request-response lifecycle. A request is sent from the user’s browser, Django calls the relevant view which then returns a response to the user. The request-response lifecycle has certain limitations though : it’s not great for realtime applications which usually require communicating with the backend server frequently. New standards such as websockets and HTTP2 address some of these shortcomings. WebSockets is a recent communications protocol which provides full-duplex communication channels over a single TCP connection and is well suited for realtime applications. Opening and maintaining a websocket connection with a server is very cheap in terms of memory and cpu resources required. To give you some real world numbers, Chris McCord was able to hold 2 million open websocket connections on a single server with 40 cores and 128 GB of RAM. Though he used the Phoenix framework as the backend of choice instead of Django channels, the important takeaway is that websockets are extremely lightweight full-duplex communication channels.

Read more

October 6, 2017

Online accounts need a clearly defined lifecycle

As part of a thought experiment, I was thinking about the implications of the internet becoming mainstream in a short time frame. One of the points that came up was the lifecycle of online accounts and their associated data. The lack of a clearly defined lifecycle means that users are at the mercy of each services’ policies. Some services retain data indefinitely, some services sell user data to third parties for ad targeting and most services don’t allow deleting accounts. This is one area where the big tech companies seem reasonable : most allow deleting user accounts and the associated data, but it’s unclear what data deletion really means. What happens to the user data stored in the database backups? What happens to the data shared with third parties? Are they instructed to delete data once the upstream user deletes his account?

Read more

September 27, 2017

Building a Disqus alternative Part 2 : The launch

I finally launched Hosted Comments!

After 3 weeks of development, I finally have the first version up and running. You can scroll to the bottom of this page and see it in action.

My initial plan was to blog about the process of building Hosted Comments, but I think I am going to skip the part 1, part 2 style in favour of standalone posts talking about specific challenges of building this software.

So what’s changed since the last post?

Read more

     


© Plogging Dev - Powered by Hugo Theme by Kiss