Settings

Theme

Blërg, a microblogging platform

blerg.cc

122 points by jimis 5 years ago · 65 comments

Reader

jimisOP 5 years ago

I was looking for Twitter alternatives and found this one, which is old and stale but looks like a very interesting experiment! Quoting its frontpage:

  But what's wrong with Twitter?

  I'M GLAD YOU ASKED. There are two aspects of Twitter that just bug me as an engineer:

    Ruby on Rails - Using rails to prototype a system is fine — scaling up to a million hits a day with it is just a bad idea. As the service grew, I'm sure it cost them a lot more time than it saved.
    140 characters is not enough - I routinely write sentences longer than 140 characters, so I can't even begin to imagine making a point in such a small space. This textual confinement has led to the rise of URL shorteners, which are breaking the internet. 

  Blërg solves these problems by applying absurd reactionary engineering. Blërg's database backend is a custom C program that handles requests over HTTP and stores data in a very small and efficient indexed log-structured database. The frontend is done entirely in client-side Javascript. A single post can be up to 65535 bytes in length.

  Which is not to say that I believe writing your service in C is the solution to all your problems. Clearly, this approach has just as many hairy problems that will bite you in the ass sooner or later. The best way, as with most things, lies somewhere in the middle of high-level abstraction and ZOMGHARDCORE OPTIMIZATION.
Or more politely described in the documentation page:

   Blërg is a minimalistic tagged text document database engine that also pretends to be a microblogging system. It is designed to efficiently store small (< 64K) pieces of text in a way that they can be quickly retrieved by record number or by querying for tags embedded in the text. Its native interface is HTTP — Blërg comes as either a standalone HTTP server, or a CGI. Blërg is written in pure C.
  • ramraj07 5 years ago

    Who cares what twitter is written in? They've gotten rid of their fail whales eons ago, so this seems like a fever dream of an elitist engineer to argue that the biggest issue with Twitter is it's engineering backbone.

    • monsieurbanana 5 years ago

      > I am 12 and what is this

      > Curious? Click this unbelievably obnoxious button!

      > Blërg is a microblogging platform. Or maybe a miniblogging platform. Blërg is not sure.

      > Blërg's author finds it entertaining to anthropomorphize Blërg in the third person.

      This website, the documentation, the text from the comment you replied to, everything is just clearly humour.

    • Saint_Genet 5 years ago

      People do this all the time here too. "Some already existing and perfectly functional piece of software impemented in Language Du Jour" is a pretty common post.

    • DominikD 5 years ago

      That page is from 2012, parent comment even mentions that this is old and unmaintained (but fun nevertheless).

    • zxcvbn4038 5 years ago

      No people do this all the time - a few years ago I read an article where the secret sauce was writing everything in lisp (good luck hiring for that). Goldman Sachs does a lot of work in erlang but mostly to limit turnover on the dev side - try getting a job if all you have on your resume is years of working with a language nobody else uses, you can do it but it’s going to take a lot more effort on your part. I came across a place in Austin once where they did all their work in a toy language the manager wrote in college (greatest job security move ever). Java was supposed to be the solution to every problem, so you could migrate seamlessly between the single platforms in use at most companies. I remember lots of articles were switching to Java is what made the volume go to eleven for company X. More recently I see a lot of articles are Golang is how company X is keeping ahead if their peers. I’m sure I’m a few more years there will be something else.

      • doix 5 years ago

        > Goldman Sachs does a lot of work in erlang but mostly to limit turnover on the dev side - try getting a job if all you have on your resume is years of working with a language nobody else uses, you can do it but it’s going to take a lot more effort on your part.

        My take on that is slightly different. Choosing a fairly esoteric language as a company reduces the amount of effort it takes to review applicants. Right now, if you post a job for python, you'll get thousands of applicants. You'll then need to filter them and a vast majority won't be able to code the most basic things.

        Post a job advert for erlang, you'll get significantly less applicants because there are fewer erlang programmers. Also, no one learns erlang to “get a job in tech”, they learn erlang because they like it as language. In my experience, this means that on average erlang programmers will be better on average to python programmers.

        I'm going to assume that if someone from Goldman Sachs leaves, they will try to find another erlang job, because that's what they enjoy programming in.

        • pathtracer 5 years ago

          > Post a job advert for erlang, you'll get significantly less applicants because there are fewer erlang programmers.

          In general I would agree with you, but does that work everywhere? I could see how that works in some tech focused locations like Silicon Valley. But if I would try to hire Erlang developers around here I would not find a single one. Unless of course I would hire remotely and try to compete with SV company salaries.

          • monsieurbanana 5 years ago

            > and try to compete with SV company salaries

            That assumes that everyone that is worth hiring is already in SV or somewhere else with a similar salary.

        • Chris2048 5 years ago

          > post a job for python, you'll get thousands of applicants

          I'm glad to see that Python is in that category. When I first abandoned Java in it's favor, I was given funny looks about why I'd stick with such an niche language..

        • dkarp 5 years ago

          > Right now, if you post a job for python, you'll get thousands of applicants

          Have you done this? I wish we received thousands of applications for each python role we post

          • dmd 5 years ago

            Absolutely, yes. Hundreds of submissions, and 80%+ of them literally could not solve fizzbuzz.

  • lazyjones 5 years ago

    It seems to be down. And Twitter migrated to Scala a while ago (from RoR).

    • f6v 5 years ago

      Anyone knows why Twitter fails to load one out of ten times?

      • nickdonnelly 5 years ago

        You likely need to delete your service workers for Twitter and let it re-create them.

        • tsukurimashou 5 years ago

          That's pretty unacceptable considering the size of the userbase, most of them probably never heard of service workers

          • f6v 5 years ago

            I’ve been in software development for almost 10 years and I had no idea about service workers.

            • nickdonnelly 5 years ago

              I believe this fix only applies if you have an old version of their service workers. I remember reading some esoteric nonsense about why it's the case. I agree with the user you replied to, it's absolutely absurd that doing this is the "fix."

  • f6v 5 years ago

    > Ruby on Rails - Using rails to prototype a system is fine

    The sad thing is that way too many developers never learn that programming language and framework is not the biggest bottleneck.

    • dnautics 5 years ago

      i think it's pretty clear that you can get really far with RoR too, if I'm not mistaken Github is still mostly RoR.

beagle3 5 years ago

From the site:

"""Is this a joke?

Yes. No. Maybe. Blërg is an exercise in constructive satire — a fully functional service created in a fit of hubris to poke fun at Twitter's engineering. It's just for fun, but no one is going to keep you from using it seriously. :]"""

molodec 5 years ago

There is too much trolling on Twitter as the character limit does not allow for any serious argument. An ambiguous one-liner from a popular individual triggers thousands of replies and retweets. I've been thinking that we need a Twitter alternative, but with a minimum limit on the number of characters and no images or gifs. Setting a minimum limit to perhaps 300 - 500 characters will eliminate much of the trolling and the noise.

  • jdauriemma 5 years ago

    You could start a Mastodon instance that ticks all those boxes and federate only with instances that follow these guidelines.

  • hundchenkatze 5 years ago

    The minimum length may work for good-faith actors, but how would you prevent trolls from pasting in 500 characters of lorem ipsum or other generated text and then adding their one-liner at the beginning or end?

    • molodec 5 years ago

      Sure, it is possible to find hols and abuse any platform. I am not good at writing, and I always hated the minimum pages limit on essays at schools, but now I think these limits are necessary to enforce thinking and providing more details into your argument. Twitter discourages that. High profile individuals can easily manipulate people and markets by saying a few words and leaving a lot of room for interpretation like Elon Musk recently suggesting that everyone should be using Signal without giving any context and specifying what that Signal was and caused an unrelated to the Signal chat app stock to jump 1000%.

    • cosmojg 5 years ago

      Moderation, no?

  • mrspeaker 5 years ago

    I was wondering what the effect of imposing a "minimum time to reply" would be. For instance, if I wanted to reply to your post - I would need to indicate my intent to reply, then after X minutes (at least 15, but ideally more) I would be able to respond.

    The idea is to stop people posting the first thing that pops into their head: hopefully taking more time to formulate a response (or reconsidering if it was valuable to say anything at all).

  • rvieira 5 years ago
    • mumblemumble 5 years ago

      My current working hypothesis is that all efforts to "fix" social media are doomed to failure, because the thing that causes social media to become toxic isn't the "medium" part, it's the "social" part. Altering the medium will just add some color to the particulars of how it becomes toxic.

  • ghostbrainalpha 5 years ago

    My plan to fix social media was something like Captcha mixed with an IQ test.

    So if we can detect you said something about climate change, you see a little popup asking you if water boils at 100 degrees Celsius or Fahrenheit? If you don't get it right, you are no longer allowed to post or reply to climate change topics.

    Did you just say Trump was the BEST or WORST President in History? I'd like to see if you can name 5 Presidents before 1980? If not, I don't think we need your opinions on historical ranking.

    The tests wouldn't be hard. And they would easily be Googleable, but there would be 10 second time limit for them to be completed.

    It would probably be the least popular social media company ever created. This is also a terrible idea, because the users that are entitled to post, probably would not be humble and might be jerks.

rakoo 5 years ago

Interestingly this has the basics to provide a personal ActivityPub-enabled stack, so it could join the Fediverse and still be useful today (after some modifications)

  • newswasboring 5 years ago

    Slightly off topic, but someone should sell Fediverse in a box. I should be able to go buy a physical credit card sized thing which I plug into my wifi and everything is setup for me. Is someone working on something like that or is the Fediverse not ready for this yet?

    • rakoo 5 years ago

      There is an active network of associative ISPs in France, and they have come up with an Internet-in-a-box thing: https://internetcu.be/. Basically it tunnels everything to a VPN of your choice (so you bypass your residential limitations) and has a yunohost "OS", so you can install anything you want with a few clicks.

      I'm sure other projects have started something like that, but I can't find them

      • olah_1 5 years ago

        FreedomBox[1] is another project like that. The main issue plaguing these things (in my opinion) is the "jack of all trades, master of none" problem.

        It does a lot, but does none of them outstandingly well. I'd prefer to see FreedomBox just focus on having a best-in-class Matrix server for example.

        Another (more recent) example is Dappnode[2]. They are kinda like Sandstorm but only for node servers that are part of decentralized networks.

        [1]: https://www.freedombox.org/

        [2]: https://dappnode.io/

        • rakoo 5 years ago

          What do you think is missing in mastering a specific usage, say Matrix ? It seems to me FreedomBox installs and configures a specific package, let's say synapse, along with the needed databases; what more can it do ?

          internetcube uses yunohost, so the quality of the box depends much more on a project that isn't tied to this specific box and can leverage improvements made by other users. yunohost is used for people who want to self-host with a machine they already have, or with a VPS.

    • input_sh 5 years ago

      I don't think it's the fediverse that's quite the problem. Two issues that I can think of that makes this harder to achieve:

      1. You'll have to fuck around with router settings to forward the incoming traffic to that piece of hardware.

      2. You'll have to have a domain, and fuck around with dynamically changing DNS settings because your IP is likely not static (this process depends on which DNS provider you choose to use).

      To add to the complexity, you'll probably have to have some sort of a VPN because otherwise anyone would be able to see your public IP by just pinging your domain.

      Point being: you can run Pleroma right now on a Raspberry Pi no problem, but doing so securely is another issue altogether.

    • Alekhine 5 years ago

      Wait, what do you mean? Set up Fediverse on WiFi? Fediverse refers to decentralized social media which can 'federate' with each other.

      • newswasboring 5 years ago

        Fediverse is trying to give social media identities in a federated manner. I want a box which will have everything setup (software etc.) for my identity servers. Like I want my own mastodone instance or stuff like that.

hundchenkatze 5 years ago

Just so everyone is aware, Blerg was created about 10 years ago (4 days to go) https://bytex64.net/blog/e2302

dgellow 5 years ago

> Ruby on Rails - Using rails to prototype a system is fine — scaling up to a million hits a day with it is just a bad idea. As the service grew, I'm sure it cost them a lot more time than it saved.

I believe that Twitter runs on the JVM since almost a decade.

  • vidarh 5 years ago

    It was also never the problem with Twitter. As much as I detest Rails, Rails was used as an excuse for having picked an architecture that did not prepare them for the need to have a properly scalable backend.

    Nothing in Rails prevented them from doing that properly, though Rails defaults may well have encouraged them to pick the easy way out initially (that in itself would not have been a problem either, if they'd started work on a proper backend in the background).

    Sharded large-scale delivery of messages has been a "solved" problem for decades, irrespective of language. Twitter as-it-is now is big enough to have all kinds of fun operational issues, but when they were struggling their volume was nothing impressive.

bytex64 5 years ago

Hey guys! Glad (and a little panicked) to see this get some more attention. I've shut down signups/logins because I don't have time to moderate, and right now you really have to moderate. :|

So long and thanks for all the barfs. :)

  • jimisOP 5 years ago

    Awesome to see you answering here! It's obvious that your little experiment has had the honour to be hammered many times by thousands of people, so I'm curious to hear your experience.

    Has it been running on a single node all these times? What are the hardware specs? How many requests per second did it handle? Has it gone down because of the load? What was the bottleneck (network, cpu io)? How did it fail (crash, slowness, fire ;-)? Do you have monitoring data to show? How many twitter-like active users would it be able to serve from that single node?

    Thanks, and Blërg! :-)

smlckz 5 years ago

I thought, great! I now am curious about how it was implemented. So I did:

        $ git clone http://git.bytex64.net/blerg.git
        Cloning blerg...
        error: Empty reply from server (curl_result = 52, http_code = 0, sha1 = 95d56e6cc [...])
        [...]
Sigh! How can we look at the C code?

[EDIT: now looked at other comments about how this is a joke... is this error intentional?]

  • bytex64 5 years ago

    Sorry about that! Should be working now.

    Here's something I never thought I'd say: Perl made breaking changes. My guess is additional strict things broke the gitweb CGI script (which was hopelessly out of date anyway).

  • hundchenkatze 5 years ago

    I don't think the error is intentional, the site was created 10 years ago. My guess is that something happened to the repo since then.

    https://bytex64.net/blog/e2302

k__ 5 years ago

Haha, awesome!

I'm planning to build a "Microblogging for companies"/"Slack for microblogging" SaaS this year because I think asnyc communication is the way for remote work.

Currently, I'm looking at existing microblogging platforms to get an idea of common features.

Next step will be interviewing potential customers.

sradman 5 years ago

The last-modified headers indicate that the front page and docs have not been updated since May 2018. This is not a viable platform and the analysis of Twitter's technical shortcomings is facile. The original 140 character limit, now doubled to 280 characters, was originally constrained by the SMS interface Twitter supported but ultimately imposes a preferred content style that distinguishes the microblogging experience.

The scaling problem is what AWS's James Hamilton use to call the "Hairball Problem" in which there is no single database partitioning scheme that performs well under all workloads. The Subscriptions [1] section of the documentation demonstrates this problem:

> I immediately came up with the naïve solution: keep a list of users to which users are subscribed, then when you want to get updates, iterate over the list and find the last entries for each user. And that would work, but it's kind of costly in terms of disk I/O. I have to visit each user in the list, retrieve their last few entries, and store them somewhere else to be sorted later. And worse, that computation has to be done every time a user checks their feed. As the number of users and subscriptions grows, that will become a problem.

> So instead, I thought about it the other way around. Instead of doing all the work when the request is received, Blërg tries to do as much as possible by "pushing" updates to subscribed users.

This approach works well except when some users have hundreds of thousands of followers which results in an explosion of "pushing" updates. This doesn't even take into account geography related latencies of a global user base. Furthermore, naive attempts at databases without fault tolerance assume that losing recent data is not a big deal. It isn't, the big problem is failures that corrupt data and can't be restored to a known good state.

[1] https://blerg.cc/doc/#subscriptions

  • peawee 5 years ago

    > The last-modified headers indicate that the front page and docs have not been updated since May 2018. This is not a viable platform and the analysis of Twitter's technical shortcomings is facile. The original 140 character limit, now doubled to 280 characters, was originally constrained by the SMS interface Twitter supported but ultimately imposes a preferred content style that distinguishes the microblogging experience.

    Your analysis of Blerg's analysis of Twitter's technical shortcomings is facile. It's a system that the author put together while intoxicated to poke fun at Twitter. Reading any more into it than that is at best highly unadvised.

    (Source: Used to live with Blerg's author)

    • sradman 5 years ago

      > It's a system that the author put together while intoxicated to poke fun at Twitter.

      The HN title is "a microblogging platform", the landing page has a section titled "But what's wrong with Twitter?", and the documentation has a "Design" [1] section. If the author intended to poke fun at Twitter as a stand-in for all microblogging platforms then leave out the engineering aspects and if the author intended to poke fun at Twitter engineering then land some technical blows. If the point of the exercise is to demonstrate how much code and documentation can be pumped out during a drinking binge then the author should state that upfront; that context is useful.

      [1] https://blerg.cc/doc/#design

  • andai 5 years ago

    The latest Blërg (or barf, as suggested) is from 2017.

tzfld 5 years ago

A logo like that would be more appropriate for twitter too.

cambalache 5 years ago

Unnecessary "complicated" name? Check!

Butt-ugly interface? Check!

Mentioning the technology used to build it as it were a feature? Check!

So a typical tool created by a developer who thinks the average guy think and act like them.

  • peawee 5 years ago

    I can personally guarantee you that the developer who built this is completely confident that nobody does or should think and act like he does.

  • skrebbel 5 years ago

    I can't figure out what made you decide to post this to HN. The author of this app has obviously been having a great time. Why the sour grapes? What are you so mad about?

    • cambalache 5 years ago

      Not mad at all, just describing what it is a common occurrence with these type of tools, you (well, not you) can take the criticism in the right way and change things to gain more users(which I suppose is the goal here) or you can get defensive and artificially place extra beliefs on the other person to assuage your discomfort. Life is always about choices.

7OVO7 5 years ago

this microblogging platform is clearly crap, it has a vomiting bird as its logo, and follows the trend of those who then arrive at the shit-storm, which is not only illegal, but a clear manifestation of inhumanity; I personally despise any use of the Internet as if it were a defecator or similar, and I hope this platform will fail, for the little good that exists

  • andai 5 years ago

    >follows the trend of those who then arrive at the shit-storm, which is not only illegal, but a clear manifestation of inhumanity

    ...what?

PokemonNoGo 5 years ago

Interesting. I pet peeve of mine is the usage of the diaeresis marks for stylization though.

kubanczyk 5 years ago

That Metal Umlaut brings memories.

mkarliner 5 years ago

Doesn't work, ASAICS

sebastianconcpt 5 years ago

Will it be editorial (retain censoring rights) or, instead, a platform (true freedom of expression)?

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection