[HN Gopher] Blerg, a microblogging platform
___________________________________________________________________
Blerg, a microblogging platform
Author : jimis
Score : 114 points
Date : 2021-01-11 07:23 UTC (14 hours ago)
(HTM) web link (blerg.cc)
(TXT) w3m dump (blerg.cc)
| tzfld wrote:
| A logo like that would be more appropriate for twitter too.
| beagle3 wrote:
| From the site:
|
| """Is this a joke?
|
| Yes. No. Maybe. Blerg 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. :]"""
| rakoo wrote:
| 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 wrote:
| 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?
| Alekhine wrote:
| Wait, what do you mean? Set up Fediverse on WiFi? Fediverse
| refers to decentralized social media which can 'federate'
| with each other.
| newswasboring wrote:
| 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.
| input_sh wrote:
| 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.
| vidarh wrote:
| To #1, you could have it join an overlay network.
| rakoo wrote:
| 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 wrote:
| 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 wrote:
| 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.
| molodec wrote:
| 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.
| mrspeaker wrote:
| 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).
| hundchenkatze wrote:
| 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 wrote:
| 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 wrote:
| Moderation, no?
| rvieira wrote:
| Relevant: https://www.smbc-comics.com/comic/fixing-social-media
| mumblemumble wrote:
| 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 wrote:
| 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.
| jdauriemma wrote:
| You could start a Mastodon instance that ticks all those boxes
| and federate only with instances that follow these guidelines.
| k__ wrote:
| 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.
| PokemonNoGo wrote:
| Interesting. I pet peeve of mine is the usage of the diaeresis
| marks for stylization though.
| smlckz wrote:
| 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 wrote:
| 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 wrote:
| 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
| jimis wrote:
| 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. Blerg solves these problems by
| applying absurd reactionary engineering. Blerg'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:
| Blerg 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 -- Blerg comes
| as either a standalone HTTP server, or a CGI. Blerg is written in
| pure C.
| f6v wrote:
| > 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 wrote:
| 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.
| ramraj07 wrote:
| 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.
| DominikD wrote:
| That page is from 2012, parent comment even mentions that
| this is old and unmaintained (but fun nevertheless).
| monsieurbanana wrote:
| > I am 12 and what is this
|
| > Curious? Click this unbelievably obnoxious button!
|
| > Blerg is a microblogging platform. Or maybe a miniblogging
| platform. Blerg is not sure.
|
| > Blerg's author finds it entertaining to anthropomorphize
| Blerg in the third person.
|
| This website, the documentation, the text from the comment
| you replied to, everything is just clearly humour.
| zxcvbn4038 wrote:
| 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 wrote:
| > 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 wrote:
| > 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.
| dkarp wrote:
| > 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 wrote:
| Absolutely, yes. Hundreds of submissions, and 80%+ of
| them literally could not solve fizzbuzz.
| Chris2048 wrote:
| > 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..
| Saint_Genet wrote:
| 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.
| lazyjones wrote:
| It seems to be down. And Twitter migrated to Scala a while ago
| (from RoR).
| f6v wrote:
| Anyone knows why Twitter fails to load one out of ten times?
| nickdonnelly wrote:
| You likely need to delete your service workers for Twitter
| and let it re-create them.
| tsukurimashou wrote:
| That's pretty unacceptable considering the size of the
| userbase, most of them probably never heard of service
| workers
| kubanczyk wrote:
| That Metal Umlaut brings memories.
| hundchenkatze wrote:
| Just so everyone is aware, Blerg was created about 10 years ago
| (4 days to go) https://bytex64.net/blog/e2302
| bytex64 wrote:
| 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. :)
| sradman wrote:
| 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 naive 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, Blerg 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 wrote:
| > 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 wrote:
| > 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
| bytex64 wrote:
| Despite my ex-roommate's well-intentioned defense, I was
| probably sober for most of it. It was also a decade ago and
| I'm somewhat wiser now. As mentioned elsewhere, I learned a
| lot about making such bold claims to the Choir of Ultimate
| Pedants. But it was something I had fun with, and I think
| the world needs more of that. :)
| sradman wrote:
| When I see someone writing a database from scratch I
| search for the rationale and the core problem being
| addressed. The HN title is misleading and needs a date
| context which is obviously not your fault but comments
| attempting to provide the missing context should not be
| dismissed as pedantry either.
|
| If the context of a fun learning experiment was made
| clear on the landing-page and/or documentation then this
| thread could have been about architecture and programming
| which I think was what you wanted originally. I suspect
| the broken git repository didn't help matters. Overall a
| missed opportunity.
| andai wrote:
| The latest Blerg (or barf, as suggested) is from 2017.
| cambalache wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| >follows the trend of those who then arrive at the shit-storm,
| which is not only illegal, but a clear manifestation of
| inhumanity
|
| ...what?
| mkarliner wrote:
| Doesn't work, ASAICS
| sebastianconcpt wrote:
| Will it be editorial (retain censoring rights) or, instead, a
| platform (true freedom of expression)?
| sebastianconcpt wrote:
| Describe the problem with downvoting that particular genuine
| question.
| peawee wrote:
| It will be focused on the true expression of a small bird
| vomiting whatever it had for lunch.
| dgellow wrote:
| > 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 wrote:
| 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.
___________________________________________________________________
(page generated 2021-01-11 22:02 UTC)